import { useEffect, useRef, useState } from 'react'; import { IconPlus, IconChecks } from '@tabler/icons-react'; function QuickAddBar({ placeholder = 'value community\nvalue community', parseLine, validateItem, onApply, className = '', help = 'Вставьте строки: VALUE ПРОБЕЛ COMMUNITY', }) { const [value, setValue] = useState(''); const [readyCount, setReadyCount] = useState(0); const [invalidCount, setInvalidCount] = useState(0); const textareaRef = useRef(null); useEffect(() => { const lines = String(value || '') .split(/\r?\n/) .map(l => l.trim()) .filter(Boolean); let ok = 0, bad = 0; for (const line of lines) { const obj = parseLine(line); if (obj && validateItem(obj)) ok++; else bad++; } setReadyCount(ok); setInvalidCount(bad); }, [value, parseLine, validateItem]); const handleApply = () => { const lines = String(value || '') .split(/\r?\n/) .map(l => l.trim()) .filter(Boolean); const items = []; for (const line of lines) { const obj = parseLine(line); if (obj && validateItem(obj)) items.push(obj); } if (items.length > 0) { onApply?.(items); setValue(''); } }; return (