import React, { useState, useContext, useEffect } from 'react'; import { AuthProvider, AuthContext } from './context/AuthContext'; import Sidebar from './components/Sidebar'; import AiStewardView from './views/AiStewardView'; import PestLibraryView from './views/PestLibraryView'; import SeasonalGuideView from './views/SeasonalGuideView'; import ToolGuideView from './views/ToolGuideView'; import BonsaiDiaryView from './views/BonsaiDiaryView'; import HealthCheckView from './views/HealthCheckView'; import SpeciesIdentifierView from './views/SpeciesIdentifierView'; import DesignStudioView from './views/DesignStudioView'; import WiringGuideView from './views/WiringGuideView'; import SoilAnalyzerView from './views/SoilAnalyzerView'; import NebariDeveloperView from './views/NebariDeveloperView'; import PotCalculatorView from './views/PotCalculatorView'; import SunTrackerView from './views/SunTrackerView'; import FertilizerMixerView from './views/FertilizerMixerView'; import SoilVolumeCalculatorView from './views/SoilVolumeCalculatorView'; import WeatherShieldView from './views/WeatherShieldView'; import SettingsView from './views/SettingsView'; import LoginView from './views/LoginView'; import { View } from './types'; import Spinner from './components/Spinner'; const AppContent: React.FC = () => { const { user, isLoading } = useContext(AuthContext); const [activeView, setActiveView] = useState('garden'); const [isSidebarCollapsed, setIsSidebarCollapsed] = useState(false); useEffect(() => { if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/service-worker.js').then(registration => { console.log('ServiceWorker registration successful with scope: ', registration.scope); }).catch(error => { console.log('ServiceWorker registration failed: ', error); }); }); } }, []); const renderView = () => { switch (activeView) { case 'steward': return ; case 'pests': return ; case 'seasons': return ; case 'tools': return ; case 'garden': return ; case 'healthCheck': return ; case 'speciesIdentifier': return ; case 'designStudio': return ; case 'wiringGuide': return ; case 'soilAnalyzer': return ; case 'nebariDeveloper': return ; case 'potCalculator': return ; case 'sunTracker': return ; case 'fertilizerMixer': return ; case 'soilVolumeCalculator': return ; case 'weatherShield': return ; case 'settings': return ; default: return ; } }; if (isLoading) { return
; } if (!user) { return ; } return (
{renderView()}
); }; const AppWrapper = () => ( ); export default AppWrapper;