import React, { useState } from 'react'; import type { View } from './types/common.ts'; import { useFarm } from './context/FarmContext.tsx'; import Sidebar from './components/Sidebar.tsx'; import Header from './components/Header.tsx'; import CycleTimeline from './components/CycleTimeline.tsx'; import Dashboard from './components/Dashboard.tsx'; import DataManagementPage from './components/counting/DataManagementPage.tsx'; import WeightMonitoringPage from './components/WeightMonitoringPage.tsx'; import WeightStandardPage from './components/WeightStandardPage.tsx'; import FeedSackCountingPage from './components/FeedSackCountingPage.tsx'; import CobbStandardPage from './components/CobbStandardPage.tsx'; import IotPanelPage from './components/IotPanelPage.tsx'; import FcrDashboardPage from './components/FcrDashboardPage.tsx'; import EefDashboardPage from './components/EefDashboardPage.tsx'; import SettingsPage from './components/SettingsPage.tsx'; import { Banner } from './components/ui/Feedback.tsx'; const AppContent: React.FC = () => { const { error, loading } = useFarm(); const [view, setView] = useState('dashboard'); const [isSidebarCollapsed, setIsSidebarCollapsed] = useState(false); const [isTimelineVisible, setIsTimelineVisible] = useState(false); const goSettings = () => setView('kandangSettings'); const renderView = () => { switch (view) { case 'dashboard': return ; case 'dataManagement': return ; case 'weightMonitoring': return ; case 'weightStandard': return ; case 'feedSackCounting': return ; case 'cobbStandard': return ; case 'iotPanel': return ; case 'fcrDashboard': return ; case 'eefDashboard': return ; case 'kandangSettings': return ; default: return ; } }; return (
setIsSidebarCollapsed((v) => !v)} />
setIsSidebarCollapsed((v) => !v)} isTimelineVisible={isTimelineVisible} onToggleTimeline={() => setIsTimelineVisible((v) => !v)} />
{isTimelineVisible && (
)}
{error && (
{error}
)} {renderView()}
{loading && (

Memuat Data...

Mohon tunggu sebentar

)}
); }; export default AppContent;