import PropTypes from 'prop-types'; import CardContainer from './CardContainer'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faCloud, faClock, faTemperature0, faWater } from '@fortawesome/free-solid-svg-icons'; import { DataProvider } from '../contexts/DataContext'; import { useData } from '../contexts/DataContext'; import { useConfig } from '../contexts/ConfigContext'; import { timestampToTime, formatTime } from '../util/date.js'; /** * SummaryCards.jsx * * Este archivo define el componente SummaryCards, que muestra tarjetas resumen con información relevante obtenida de sensores. * * Importaciones: * - PropTypes: Librería para la validación de tipos de propiedades en componentes de React. * - CardContainer: Componente que actúa como contenedor para las tarjetas. * - DataProvider, useData: Funciones del contexto de datos para obtener y manejar datos. * - useConfig: Hook personalizado para acceder al contexto de configuración. * * Funcionalidad: * - SummaryCards: Componente que configura la solicitud de datos y utiliza el DataProvider para obtener datos de sensores. * - Muestra mensajes de carga y error según el estado de la configuración. * - SummaryCardsContent: Componente que procesa los datos obtenidos y actualiza el contenido de las tarjetas. * - Utiliza el hook `useData` para acceder a los datos de sensores. * - Actualiza el contenido y estado de las tarjetas según los datos obtenidos. * * PropTypes: * - SummaryCards espera una propiedad `data` que es un array. * */ const SummaryCards = ({ deviceId }) => { const { config, configLoading, configError } = useConfig(); if (configLoading) return
Cargando configuración...
; if (configError) returnError al cargar configuración: {configError}
; if (!config) returnConfiguración no disponible.
; const BASE = config.appConfig.endpoints.LOGIC_URL; const ENDPOINT = config.appConfig.endpoints.GET_DEVICE_LATEST_VALUES; const endp = ENDPOINT.replace('{0}', deviceId); const reqConfig = { baseUrl: `${BASE}/${endp}`, params: {} } return (Cargando datos...
; if (dataError) returnError al cargar datos: {dataError}
; if (!data) returnDatos no disponibles.
; const CardsData = [ { id: 1, title: "Temperatura", content: "N/A", status: "Esperando datos...", titleIcon: