import React, { useEffect } from 'react';
|
|
import { BrowserRouter, Routes, Route } from 'react-router-dom';
|
|
import { FiSettings } from 'react-icons/fi';
|
|
import { TooltipComponent } from '@syncfusion/ej2-react-popups';
|
|
|
|
import { Navbar, Footer, Sidebar, ThemeSettings } from './components';
|
|
import { Ecommerce, Orders, Calendar, Employees, Stacked, Pyramid, Customers, Kanban, Line, Area, Bar, Pie, Financial, ColorPicker, ColorMapping, Editor } from './pages';
|
|
import Line2 from './pages/Charts/Line2'
|
|
import './App.css';
|
|
|
|
import { useStateContext } from './contexts/ContextProvider';
|
|
|
|
const App = () => {
|
|
const { setCurrentColor, setCurrentMode, currentMode, activeMenu, currentColor, themeSettings, setThemeSettings } = useStateContext();
|
|
|
|
useEffect(() => {
|
|
const currentThemeColor = localStorage.getItem('colorMode');
|
|
const currentThemeMode = localStorage.getItem('themeMode');
|
|
if (currentThemeColor && currentThemeMode) {
|
|
setCurrentColor(currentThemeColor);
|
|
setCurrentMode(currentThemeMode);
|
|
}
|
|
}, []);
|
|
|
|
return (
|
|
<div className={currentMode === 'Dark' ? 'dark' : ''}>
|
|
<BrowserRouter>
|
|
<div className="flex relative dark:bg-main-dark-bg">
|
|
<div className="fixed right-4 bottom-4" style={{ zIndex: '1000' }}>
|
|
<TooltipComponent
|
|
content="Settings"
|
|
position="Top"
|
|
>
|
|
<button
|
|
type="button"
|
|
onClick={() => setThemeSettings(true)}
|
|
style={{ background: currentColor, borderRadius: '50%' }}
|
|
className="text-3xl text-white p-3 hover:drop-shadow-xl hover:bg-light-gray"
|
|
>
|
|
<FiSettings />
|
|
</button>
|
|
|
|
</TooltipComponent>
|
|
</div>
|
|
{activeMenu ? (
|
|
<div className="w-72 fixed sidebar dark:bg-secondary-dark-bg bg-white ">
|
|
<Sidebar />
|
|
</div>
|
|
) : (
|
|
<div className="w-0 dark:bg-secondary-dark-bg">
|
|
<Sidebar />
|
|
</div>
|
|
)}
|
|
<div
|
|
className={
|
|
activeMenu
|
|
? 'dark:bg-main-dark-bg bg-main-bg min-h-screen md:ml-72 w-full '
|
|
: 'bg-main-bg dark:bg-main-dark-bg w-full min-h-screen flex-2 '
|
|
}
|
|
>
|
|
<div className="fixed md:static bg-main-bg dark:bg-main-dark-bg navbar w-full ">
|
|
<Navbar />
|
|
</div>
|
|
<div>
|
|
{themeSettings && (<ThemeSettings />)}
|
|
|
|
<Routes>
|
|
{/* dashboard */}
|
|
<Route path="/" element={(<Ecommerce />)} />
|
|
<Route path="/overview" element={(<Ecommerce />)} />
|
|
|
|
{/* pages */}
|
|
<Route path="/orders" element={<Bar/>} />
|
|
<Route path="/firstscreen" element={<Employees />} />
|
|
<Route path="/sheets" element={<Customers />} />
|
|
<Route path="/firstscreen" element={<Line />} />
|
|
<Route path="/lastscreen" element={<Line2 />} />
|
|
|
|
{/* apps */}
|
|
<Route path="/kanban" element={<Kanban />} />
|
|
<Route path="/editor" element={<Editor />} />
|
|
<Route path="/calendar" element={<Calendar />} />
|
|
<Route path="/color-picker" element={<ColorPicker />} />
|
|
|
|
{/* charts */}
|
|
<Route path="/line" element={<Line />} />
|
|
<Route path="/area" element={<Area />} />
|
|
<Route path="/bar" element={<Bar />} />
|
|
<Route path="/pie" element={<Pie />} />
|
|
<Route path="/financial" element={<Financial />} />
|
|
<Route path="/color-mapping" element={<ColorMapping />} />
|
|
<Route path="/pyramid" element={<Pyramid />} />
|
|
<Route path="/stacked" element={<Stacked />} />
|
|
|
|
</Routes>
|
|
</div>
|
|
<Footer />
|
|
</div>
|
|
</div>
|
|
</BrowserRouter>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default App;
|