diff --git a/components/SelectNames.tsx b/components/SelectNames.tsx index 16dc0c6..82199b0 100644 --- a/components/SelectNames.tsx +++ b/components/SelectNames.tsx @@ -10,7 +10,7 @@ interface SelectNamesProps { } const SelectNames: React.FC = ({ onSelect, initialValue }) => { - let initialOptions = initialValue ? initialValue.split(", ").map((val: any) => ({ label: val, value: val })) : []; + const initialOptions = initialValue ? initialValue.split(",").map(val => ({ label: val.trim(), value: val.trim() })) : []; const [selectedLabels, setSelectedLabels] = React.useState(initialOptions); const { myVariable } = useMyVariable(); const options = myVariable.names || [ @@ -20,7 +20,7 @@ const SelectNames: React.FC = ({ onSelect, initialValue }) => ]; React.useEffect(() => { - let initialOptions = initialValue ? initialValue.split(", ").map(val => ({ label: val, value: val })) : []; + const initialOptions = initialValue ? initialValue.split(",").map(val => ({ label: val.trim(), value: val.trim() })) : []; setSelectedLabels(initialOptions); }, [initialValue]); @@ -31,12 +31,24 @@ const SelectNames: React.FC = ({ onSelect, initialValue }) => onSelect(labs.join(", ")); // Update parent component's state } + const handlePaste = (event: React.ClipboardEvent) => { + event.preventDefault(); + const pastedText = event.clipboardData.getData('text'); + const pastedNames = pastedText.split(',').map(name => name.trim()).filter(Boolean); + const newOptions = pastedNames.map(name => ({ label: name, value: name })); + setSelectedLabels(prevLabels => [...prevLabels, ...newOptions]); + handleInputChange([...selectedLabels, ...newOptions]); + }; + return ( -
+
{ handleInputChange(selected || []); }} @@ -74,4 +86,4 @@ const SelectNames: React.FC = ({ onSelect, initialValue }) => ); }; -export default SelectNames; +export default SelectNames; \ No newline at end of file