saleor-dashboard/src/hooks/useMultiAutocomplete.ts
Patryk Andrzejewski 1d2eeb7592
Strict mode plugin (#3778)
* Stric mode plugin

* Update command
2023-06-21 11:28:00 +02:00

30 lines
836 B
TypeScript

// @ts-strict-ignore
import { MultiAutocompleteChoiceType } from "@dashboard/components/MultiAutocompleteSelectField";
import { maybe } from "@dashboard/misc";
import useListActions from "./useListActions";
function useMultiAutocomplete(initial: MultiAutocompleteChoiceType[] = []) {
const { listElements, toggle } = useListActions<MultiAutocompleteChoiceType>(
initial,
(a, b) => a.value === b.value,
);
const handleSelect = (
event: React.ChangeEvent<any>,
choices: MultiAutocompleteChoiceType[],
) => {
const value: string = event.target.value;
const match = choices.find(choice => choice.value === value);
toggle({
label: maybe(() => match.label, value),
value,
});
};
return {
change: handleSelect,
data: listElements,
};
}
export default useMultiAutocomplete;