'use client' // React Imports import { useEffect, useState } from 'react' import { useFarmHub } from '@/hooks/useFarmHub' // MUI Imports import Grid from '@mui/material/Grid2' import Box from '@mui/material/Box' import CircularProgress from '@mui/material/CircularProgress' // Component Imports import FarmWeatherCard from '@views/dashboards/farm/FarmWeatherCard' import FarmAlertsTimeline from '@views/dashboards/farm/FarmAlertsTimeline' import WaterNeedPrediction from '@views/dashboards/farm/WaterNeedPrediction' import SensorValuesList from '@views/dashboards/farm/SensorValuesList' // Service import { farmDashboardService } from '@/libs/api/services/farmDashboardService' import type { CardId } from '@views/dashboards/farm/farmDashboardConfig' /** هر ردیف: آرایهٔ کارت‌ها؛ در هر ردیف فضا مساوی بین گریدها تقسیم می‌شود (جمع = ۱۲) */ const WATER_ROWS: CardId[][] = [ ['farmWeatherCard', 'farmAlertsTimeline', 'waterNeedPrediction'], ['sensorValuesList'] ] const cardRowSx = { display: 'flex', flexDirection: 'column', minHeight: 380, '& > *': { flex: 1, minHeight: 0 } } const CARD_COMPONENTS: Partial }>>> = { farmWeatherCard: FarmWeatherCard, farmAlertsTimeline: FarmAlertsTimeline, waterNeedPrediction: WaterNeedPrediction, sensorValuesList: SensorValuesList } const WaterDataDashboardWrapper = () => { const { farmHub } = useFarmHub() const farmUuid = farmHub?.farm_uuid const [cardsData, setCardsData] = useState>>>({}) const [loading, setLoading] = useState(true) useEffect(() => { if (!farmUuid) { setCardsData({}) setLoading(false) return } setLoading(true) farmDashboardService .getAllCards(farmUuid) .then(cards => setCardsData(cards ?? {})) .catch(() => setCardsData({})) .finally(() => setLoading(false)) }, [farmUuid]) if (loading) { return ( ) } return ( {WATER_ROWS.map((rowCards, rowIndex) => { const sizePerCard = 12 / rowCards.length return ( {rowCards.map(cardId => { const Component = CARD_COMPONENTS[cardId] if (!Component) return null return ( ) })} ) })} ) } export default WaterDataDashboardWrapper