import { Pill, PillsInput } from "@mantine/core"; import { Dispatch, SetStateAction, useState } from "react"; export default function ListInput({ label, value, setValue, canAdd = true, }: { label: string; value: string[]; setValue: Dispatch>; canAdd?: boolean; }) { const [inputValue, setInputValue] = useState(""); const handleKeyDown = (event: React.KeyboardEvent) => { if (event.key === "Enter" || event.key === ",") { event.preventDefault(); const newItem = inputValue.trim(); if (newItem && value.indexOf(newItem) == -1) { setValue([...value, newItem]); setInputValue(""); } } else if (event.key === "Backspace") { const newItem = inputValue.trim(); if (newItem === "") { setValue(value.slice(0, -1)); } } }; return ( {value.map((item: string) => ( setValue(value.filter((value: string) => value !== item)) } > {item} ))} {canAdd ? ( setInputValue(event.currentTarget.value)} onKeyDown={handleKeyDown} /> ) : null} ); }