import React from 'react'; import { useSortable } from '@dnd-kit/sortable'; import { CSS } from '@dnd-kit/utilities'; import { ruleErrors, hasErrors } from '../utils/validation.js'; function listToText(value) { return Array.isArray(value) ? value.join('\n') : ''; } function textToList(value) { return value .split(/\r?\n|,/) .map((item) => item.trim()) .filter(Boolean); } export function RuleCard({ rule, index, total, onUpdate, onRemove }) { const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: rule.id }); const style = { transform: CSS.Transform.toString(transform), transition, opacity: isDragging ? 0.6 : 1, }; const errors = ruleErrors(rule); const errored = hasErrors(errors); return (
⠿ #{index + 1}/{total} onUpdate(rule.id, { name: event.target.value })} placeholder="Название списка" />