53 lines
1.7 KiB
TypeScript
Executable File
53 lines
1.7 KiB
TypeScript
Executable File
import React from 'react';
|
|
import ReactDOM from 'react-dom/client';
|
|
import { BrowserRouter, Routes, Route } from 'react-router-dom';
|
|
import { ConfigProvider, theme as antdTheme } from 'antd';
|
|
import 'antd/dist/reset.css';
|
|
import App from './App';
|
|
import Admin from './admin/Admin';
|
|
import Login from './customer/Login';
|
|
import Register from './customer/Register';
|
|
import Account from './customer/Account';
|
|
import PrivacyPolicy from './customer/PrivacyPolicy';
|
|
import Cart from './cart/Cart';
|
|
import { CustomerAuthProvider } from './customer/CustomerAuthContext';
|
|
import { CartProvider } from './cart/CartContext';
|
|
import { ThemeModeProvider, useThemeMode } from './theme/ThemeContext';
|
|
import './styles.css';
|
|
|
|
function Root() {
|
|
const { mode } = useThemeMode();
|
|
return (
|
|
<ConfigProvider
|
|
theme={{
|
|
algorithm: mode === 'dark' ? antdTheme.darkAlgorithm : antdTheme.defaultAlgorithm,
|
|
token: { colorPrimary: '#1a1a1a' }
|
|
}}
|
|
>
|
|
<BrowserRouter>
|
|
<Routes>
|
|
<Route path="/" element={<App />} />
|
|
<Route path="/admin" element={<Admin />} />
|
|
<Route path="/login" element={<Login />} />
|
|
<Route path="/register" element={<Register />} />
|
|
<Route path="/account" element={<Account />} />
|
|
<Route path="/cart" element={<Cart />} />
|
|
<Route path="/privacy" element={<PrivacyPolicy />} />
|
|
</Routes>
|
|
</BrowserRouter>
|
|
</ConfigProvider>
|
|
);
|
|
}
|
|
|
|
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
<React.StrictMode>
|
|
<ThemeModeProvider>
|
|
<CustomerAuthProvider>
|
|
<CartProvider>
|
|
<Root />
|
|
</CartProvider>
|
|
</CustomerAuthProvider>
|
|
</ThemeModeProvider>
|
|
</React.StrictMode>
|
|
);
|