@@ -8,7 +8,7 @@ import ContactModal from './components/ContactModal';
88import GenericModal from './components/GenericModal' ;
99import DigitalRain from './components/DigitalRain' ;
1010import BSOD from './components/BSOD' ;
11- import { AnimationProvider } from './context/AnimationContext' ;
11+ import { AnimationProvider , useAnimation } from './context/AnimationContext' ;
1212import { CommandPaletteProvider } from './context/CommandPaletteContext' ;
1313import { VisualSettingsProvider } from './context/VisualSettingsContext' ;
1414import { AchievementProvider } from './context/AchievementContext' ;
@@ -19,6 +19,16 @@ import { SiteConfigProvider } from './context/SiteConfigContext';
1919import { CloudMusicProvider } from './context/CloudMusicContext' ;
2020import { DndProvider } from './context/DndContext' ;
2121import TinyCloudPlayer from './app/apps/CloudMusicPlayer/components/TinyCloudPlayer' ;
22+ import { MotionConfig } from 'framer-motion' ;
23+
24+ const MotionConfigWrapper = ( { children } ) => {
25+ const { reduceMotion } = useAnimation ( ) ;
26+ return (
27+ < MotionConfig reducedMotion = { reduceMotion ? "always" : "never" } >
28+ { children }
29+ </ MotionConfig >
30+ ) ;
31+ } ;
2232
2333function App ( ) {
2434 const [ isModalOpen , setIsModalOpen ] = useState ( false ) ;
@@ -57,49 +67,51 @@ function App() {
5767
5868 return (
5969 < AnimationProvider >
60- < Router >
61- < ToastProvider >
62- < SiteConfigProvider >
63- < CloudMusicProvider >
64- < DndProvider >
65- < AchievementProvider >
66- < AchievementListeners />
67- < HomepageOrderProvider >
68- < VisualSettingsProvider >
69- < DigitalRain isActive = { isRainActive } />
70- < BSOD isActive = { isBSODActive } toggleBSOD = { toggleBSOD } />
71- < ScrollToTop />
72- < TinyCloudPlayer />
73- < CommandPaletteProvider >
74- < SidePanelProvider >
75- < Layout
76- toggleModal = { toggleModal }
77- isSearchVisible = { isSearchVisible }
78- toggleSearch = { toggleSearch }
79- openGenericModal = { openGenericModal }
80- toggleDigitalRain = { toggleDigitalRain }
81- toggleBSOD = { toggleBSOD }
82- >
83- < AnimatedRoutes />
84- </ Layout >
85- </ SidePanelProvider >
86- </ CommandPaletteProvider >
87- < ContactModal isOpen = { isModalOpen } onClose = { toggleModal } />
88- < GenericModal
89- isOpen = { isGenericModalOpen }
90- onClose = { closeGenericModal }
91- title = { genericModalContent . title }
92- >
93- { genericModalContent . content }
94- </ GenericModal >
95- </ VisualSettingsProvider >
96- </ HomepageOrderProvider >
97- </ AchievementProvider >
98- </ DndProvider >
99- </ CloudMusicProvider >
100- </ SiteConfigProvider >
101- </ ToastProvider >
102- </ Router >
70+ < MotionConfigWrapper >
71+ < Router >
72+ < ToastProvider >
73+ < SiteConfigProvider >
74+ < CloudMusicProvider >
75+ < DndProvider >
76+ < AchievementProvider >
77+ < AchievementListeners />
78+ < HomepageOrderProvider >
79+ < VisualSettingsProvider >
80+ < DigitalRain isActive = { isRainActive } />
81+ < BSOD isActive = { isBSODActive } toggleBSOD = { toggleBSOD } />
82+ < ScrollToTop />
83+ < TinyCloudPlayer />
84+ < CommandPaletteProvider >
85+ < SidePanelProvider >
86+ < Layout
87+ toggleModal = { toggleModal }
88+ isSearchVisible = { isSearchVisible }
89+ toggleSearch = { toggleSearch }
90+ openGenericModal = { openGenericModal }
91+ toggleDigitalRain = { toggleDigitalRain }
92+ toggleBSOD = { toggleBSOD }
93+ >
94+ < AnimatedRoutes />
95+ </ Layout >
96+ </ SidePanelProvider >
97+ </ CommandPaletteProvider >
98+ < ContactModal isOpen = { isModalOpen } onClose = { toggleModal } />
99+ < GenericModal
100+ isOpen = { isGenericModalOpen }
101+ onClose = { closeGenericModal }
102+ title = { genericModalContent . title }
103+ >
104+ { genericModalContent . content }
105+ </ GenericModal >
106+ </ VisualSettingsProvider >
107+ </ HomepageOrderProvider >
108+ </ AchievementProvider >
109+ </ DndProvider >
110+ </ CloudMusicProvider >
111+ </ SiteConfigProvider >
112+ </ ToastProvider >
113+ </ Router >
114+ </ MotionConfigWrapper >
103115 </ AnimationProvider >
104116 ) ;
105117}
0 commit comments