Files
MelodyMuse/src/App.tsx
T

27 lines
1.1 KiB
TypeScript

import { Suspense, lazy } from 'react';
import { Route, Routes } from 'react-router-dom';
import { ToastProvider } from './lib/toast';
import { I18nProvider } from './lib/i18n';
import { ThemeProvider } from './lib/theme';
const HomePage = lazy(() => import('./pages/HomePage').then(module => ({ default: module.HomePage })));
const SettingsPage = lazy(() => import('./pages/SettingsPage').then(module => ({ default: module.SettingsPage })));
export default function App() {
return (
<ThemeProvider>
<I18nProvider>
<ToastProvider>
<Suspense fallback={<div className="h-screen w-screen flex items-center justify-center bg-bg"><div className="w-8 h-8 rounded-full border-4 border-accent-primary border-t-transparent animate-spin" /></div>}>
<Routes>
<Route path="/" element={<HomePage />} />
<Route path="/settings" element={<SettingsPage />} />
<Route path="*" element={<HomePage />} />
</Routes>
</Suspense>
</ToastProvider>
</I18nProvider>
</ThemeProvider>
);
}