summaryrefslogtreecommitdiffstats
path: root/front/odiparpack/app/components/Tables/tableParts/SelectableCell.js
blob: 66fde97a3bdc4d94b900c0553f436fd5af0b7eb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import React from 'react';
import PropTypes from 'prop-types';
import css from 'ba-styles/Table.scss';

import { Select, MenuItem, TableCell } from '@material-ui/core';

class SelectableCell extends React.Component {
  handleChange = event => {
    this.props.updateRow(event, this.props.branch);
    this.setState({ [event.target.name]: event.target.value });
  };

  render() {
    const {
      cellData,
      edited,
      options,
    } = this.props;
    return (
      <TableCell padding="none">
        <Select
          name={cellData.type}
          id={cellData.id.toString()}
          className={css.crudInput}
          value={cellData.value}
          onChange={this.handleChange}
          displayEmpty
          disabled={!edited}
          margin="none"
        >
          {options.map((option, index) => <MenuItem value={option} key={index.toString()}>{option}</MenuItem>)}
        </Select>
      </TableCell>
    );
  }
}

SelectableCell.propTypes = {
  options: PropTypes.array.isRequired,
  cellData: PropTypes.object.isRequired,
  updateRow: PropTypes.func.isRequired,
  edited: PropTypes.bool.isRequired,
  branch: PropTypes.string.isRequired,
};

export default SelectableCell;