'use client' import React, { useState, useEffect } from 'react' import ObjectGallery from '../../../components/objects/ObjectGallery' import { ObjectData } from '../../../components/objects/ObjectCard' import Sidebar from '../../../components/ui/Sidebar' import detectorsData from '../../../data/detectors.json' // Интерфейс для данных объекта из JSON interface RawObjectData { name: string title: string description: string image?: string location: string address: string floors: number area: number type?: string status?: string zones: Array<{ zone_id: string name: string detectors: number[] }> } // Функция для преобразования данных объекта из JSON const transformObjectToObjectData = (objectId: string, objectData: RawObjectData): ObjectData => { return { object_id: objectId, title: objectData.title || `Объект ${objectId}`, description: objectData.description || `Описание объекта ${objectData.title || objectId}`, image: objectData.image || '/images/default-object.jpg', location: objectData.location || 'Не указано', floors: objectData.floors, area: objectData.area.toString(), type: objectData.type || 'object', status: objectData.status || 'active' } } const ObjectsPage: React.FC = () => { const [objects, setObjects] = useState([]) const [loading, setLoading] = useState(true) const [error, setError] = useState(null) const [selectedObjectId, setSelectedObjectId] = useState(null) useEffect(() => { const loadData = () => { try { setLoading(true) if (detectorsData.objects) { const transformedObjects = Object.entries(detectorsData.objects).map( ([objectId, objectData]) => transformObjectToObjectData(objectId, objectData) ) setObjects(transformedObjects) } else { throw new Error('Не удалось получить данные объектов') } } catch (err) { console.error('Ошибка при загрузке данных:', err) setError(err instanceof Error ? err.message : 'Произошла неизвестная ошибка') } finally { setLoading(false) } } loadData() }, []) const handleObjectSelect = (objectId: string) => { console.log('Object selected:', objectId) setSelectedObjectId(objectId) } if (loading) { return (

Загрузка объектов...

) } if (error) { return (

Ошибка загрузки

{error}

) } return (
) } export default ObjectsPage