import React, { useState } from 'react'; import { BrowserRouter as Router } from 'react-router-dom'; import Layout from './components/Layout'; import AnimatedRoutes from './components/AnimatedRoutes'; import { ToastProvider } from './context/ToastContext'; import ScrollToTop from './components/ScrollToTop'; import ContactModal from './components/ContactModal'; import GenericModal from './components/GenericModal'; import DigitalRain from './components/DigitalRain'; import BSOD from './components/BSOD'; import { AnimationProvider, useAnimation } from './context/AnimationContext'; import { CommandPaletteProvider } from './context/CommandPaletteContext'; import { VisualSettingsProvider } from './context/VisualSettingsContext'; import { AchievementProvider } from './context/AchievementContext'; import AchievementListeners from './components/AchievementListeners'; import { SidePanelProvider } from './context/SidePanelContext'; import { HomepageOrderProvider } from './context/HomepageOrderContext'; import { SiteConfigProvider } from './context/SiteConfigContext'; import { CloudMusicProvider } from './context/CloudMusicContext'; import { DndProvider } from './context/DndContext'; import TinyCloudPlayer from './app/apps/CloudMusicPlayer/components/TinyCloudPlayer'; import { MotionConfig } from 'framer-motion'; const MotionConfigWrapper = ({ children }) => { const { reduceMotion } = useAnimation(); return ( {children} ); }; function App() { const [isModalOpen, setIsModalOpen] = useState(false); const [isSearchVisible, setIsSearchVisible] = useState(false); const [isGenericModalOpen, setIsGenericModalOpen] = useState(false); const [genericModalContent, setGenericModalContent] = useState({ title: '', content: null, }); const [isRainActive, setIsRainActive] = useState(false); // State for Digital Rain const [isBSODActive, setIsBSODActive] = useState(false); // State for BSOD const toggleModal = () => { setIsModalOpen(!isModalOpen); }; const openGenericModal = (title, content) => { setGenericModalContent({ title, content }); setIsGenericModalOpen(true); }; const closeGenericModal = () => { setIsGenericModalOpen(false); }; const toggleSearch = () => { setIsSearchVisible(!isSearchVisible); window.scrollTo({ top: 0, behavior: 'smooth' }); // Scroll to top }; const toggleDigitalRain = () => { setIsRainActive((prev) => !prev); }; const toggleBSOD = () => { setIsBSODActive((prev) => !prev); }; return ( {genericModalContent.content} ); } export default App;