'use client'; import { useState, useEffect } from 'react'; interface Application { id: string; number: string; type: string; status: string; aircraft: string; date: string; organization: string; description?: string; documents?: string[]; comments?: string; } interface ApplicationCardModalProps { isOpen: boolean; onClose: () => void; application: Application | null; onSave?: (updatedApplication: Application) => void; } export default function ApplicationCardModal({ isOpen, onClose, application, onSave }: ApplicationCardModalProps) { const [isEditing, setIsEditing] = useState(false); const [editedApplication, setEditedApplication] = useState(null); useEffect(() => { if (application) { setEditedApplication({ ...application }); setIsEditing(false); } }, [application]); if (!isOpen || !application || !editedApplication) { return null; } const handleChange = (field: keyof Application, value: string | string[]) => { setEditedApplication({ ...editedApplication, [field]: value }); }; const handleSave = () => { if (onSave) { onSave(editedApplication); setIsEditing(false); alert('Заявка успешно обновлена'); } }; const handleCancel = () => { if (application) { setEditedApplication({ ...application }); setIsEditing(false); } }; const currentApplication = isEditing ? editedApplication : application; return (
e.stopPropagation()} >

{currentApplication.number}

{isEditing ? (
handleChange('aircraft', e.target.value)} style={{ width: '100%', padding: '12px', border: '1px solid #ccc', borderRadius: '4px', fontSize: '14px', }} />
handleChange('organization', e.target.value)} style={{ width: '100%', padding: '12px', border: '1px solid #ccc', borderRadius: '4px', fontSize: '14px', }} />
handleChange('date', e.target.value)} style={{ width: '100%', padding: '12px', border: '1px solid #ccc', borderRadius: '4px', fontSize: '14px', }} />
) : (
Тип: {currentApplication.type} | ВС: {currentApplication.aircraft} | Организация: {currentApplication.organization} | Дата: {currentApplication.date}
)}
{!isEditing && ( )}
Статус: {currentApplication.status}

Описание заявки

{isEditing ? (