import { Button, Popover, Select } from "antd";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors";

const mapStateToProps = createStructuredSelector({
  bodyshop: selectBodyshop
});

export default connect(
  mapStateToProps,
  null
)(function AllocationsBulkAssignmentComponent({
  disabled,
  bodyshop,
  handleAssignment,
  assignment,
  setAssignment,
  visibilityState
}) {
  const { t } = useTranslation();

  const onChange = (e) => {
    setAssignment({ ...assignment, employeeid: e });
  };

  const [visibility, setVisibility] = visibilityState;

  const popContent = (
    <div>
      <Select
        showSearch
        style={{ width: 200 }}
        placeholder="Select a person"
        optionFilterProp="children"
        onChange={onChange}
        filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
      >
        {bodyshop.employees.map((emp) => (
          <Select.Option value={emp.id} key={emp.id}>
            {`${emp.first_name} ${emp.last_name}`}
          </Select.Option>
        ))}
      </Select>

      <Button type="primary" disabled={!assignment.employeeid} onClick={handleAssignment}>
        Assign
      </Button>
      <Button onClick={() => setVisibility(false)}>Close</Button>
    </div>
  );

  return (
    <Popover content={popContent} open={visibility}>
      <Button disabled={disabled} onClick={() => setVisibility(true)}>
        {t("allocations.actions.assign")}
      </Button>
    </Popover>
  );
});
