'use client' import React, {useState} from 'react'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import {faDownload, faSpinner} from '@fortawesome/free-solid-svg-icons'; import {useTranslations} from 'next-intl'; import SelectBox from '@/components/form/SelectBox'; interface SeriesImportItem { id: string; name: string; } interface SeriesImportSelectorProps { availableItems: SeriesImportItem[]; onImport: (seriesElementId: string) => Promise; placeholder: string; label?: string; } export default function SeriesImportSelector({ availableItems, onImport, placeholder, label }: SeriesImportSelectorProps) { const t = useTranslations(); const [selectedId, setSelectedId] = useState(''); const [isImporting, setIsImporting] = useState(false); async function handleImport(): Promise { if (!selectedId || isImporting) return; setIsImporting(true); try { await onImport(selectedId); setSelectedId(''); } finally { setIsImporting(false); } } if (availableItems.length === 0) { return null; } const selectData = availableItems.map((item) => ({ label: item.name, value: item.id })); return (
{label && (

{label}

)}
setSelectedId(e.target.value)} data={selectData} defaultValue={selectedId} placeholder={placeholder} />
); }