import React from 'react'; import { Building } from '../../types'; import { PassportView } from './PassportView'; import { ResidentsView } from './ResidentsView'; export const Passport: React.FC<{ building: Building, isEditing: boolean, setBuilding: React.Dispatch> }> = ({ building, isEditing, setBuilding }) => { const updatePassport = (section: keyof Building['passport'], field: string, value: any) => { setBuilding(prev => { try { const sectionData = prev.passport[section] as any; // Если это массив (lifts, meters), заменяем весь массив if (Array.isArray(sectionData)) { return { ...prev, passport: { ...prev.passport, [section]: value } }; } // Иначе обновляем поле в объекте // Проверяем, что sectionData существует, иначе создаем пустой объект const currentSectionData = sectionData || {}; return { ...prev, passport: { ...prev.passport, [section]: { ...currentSectionData, [field]: value } } }; } catch (error) { console.error('Error in updatePassport:', error, { section, field, value }); return prev; // Возвращаем предыдущее состояние при ошибке } }); }; const updatePassportArray = (section: 'meters' | 'lifts', index: number, field: string, value: any) => { setBuilding(prev => { const newArray = [...prev.passport[section]]; // @ts-ignore newArray[index] = { ...newArray[index], [field]: value }; return { ...prev, passport: { ...prev.passport, [section]: newArray } }; }); }; return (
{/* Technical Passport Sheet */} {/* Resident Asset Sheet (Merged into Passport as per 8-tab logic) */}

Совет дома и Контакты

); };