import React, { useState, useEffect } from 'react'; import Modal from '@/components/Modal'; import logger from '@/utils/logger'; import { Edit3, Trash2, Plus } from 'lucide-react'; function ParentFileForm({ initialData, groups, onSubmit, onCancel }) { const [name, setName] = useState(initialData?.name || ''); const [description, setDescription] = useState(initialData?.description || ''); // Correction : s'assurer que selectedGroups ne contient que des IDs uniques const [selectedGroups, setSelectedGroups] = useState( Array.isArray(initialData?.groups) ? Array.from( new Set( initialData.groups.map(g => (typeof g === 'object' && g !== null && 'id' in g ? g.id : g)) ) ) : [] ); const [isRequired, setIsRequired] = useState(initialData?.is_required || false); useEffect(() => { if (initialData) { setName(initialData.name || ''); setDescription(initialData.description || ''); setSelectedGroups( Array.isArray(initialData.groups) ? Array.from( new Set( initialData.groups.map(g => (typeof g === 'object' && g !== null && 'id' in g ? g.id : g)) ) ) : [] ); setIsRequired(initialData.is_required || false); } }, [initialData]); const handleSubmit = (e) => { e.preventDefault(); if (!name || selectedGroups.length === 0) return; const data = { name, description, groups: selectedGroups, is_required: isRequired, id: initialData?.id, }; logger.debug('[ParentFileForm] handleSubmit data:', data); onSubmit(data); }; return (
setName(e.target.value)} className="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-1 focus:ring-orange-500 focus:border-orange-500" />