import React, { useCallback, useMemo } from "react"; import { Autocomplete, Box, Checkbox, Chip, ListSubheader, MenuItem, TextField, Tooltip, } from "@mui/material"; import { QcItemWithChecks } from "@/app/api/qc"; import { useTranslation } from "react-i18next"; interface CommonProps { allQcs: QcItemWithChecks[]; error?: boolean; } interface SingleAutocompleteProps extends CommonProps { value: number | string | undefined; onQcSelect: (qcItemId: number) => void | Promise; // multiple: false; } type Props = SingleAutocompleteProps; const QcSelect: React.FC = ({ allQcs, value, error, onQcSelect }) => { const { t } = useTranslation("home"); const filteredQc = useMemo(() => { // do filtering here if any return allQcs; }, [allQcs]); const options = useMemo(() => { return [ { value: -1, // think think sin label: t("None"), group: "default", }, ...filteredQc.map((q) => ({ value: q.id, label: `${q.code} - ${q.name}`, group: "existing", })), ]; }, [t, filteredQc]); const currentValue = options.find((o) => o.value === value) || options[0]; const onChange = useCallback( ( event: React.SyntheticEvent, newValue: { value: number; group: string } | { value: number }[], ) => { const singleNewVal = newValue as { value: number; group: string; }; onQcSelect(singleNewVal.value); }, [onQcSelect], ); return ( option.label} options={options} renderInput={(params) => } /> ); }; export default QcSelect;