64 lines
1.7 KiB
TypeScript
64 lines
1.7 KiB
TypeScript
import React from "react";
|
|
import { BrowserRouter, Routes, Route, Navigate } from "react-router-dom";
|
|
import { Provider } from "react-redux";
|
|
import { store } from "./store";
|
|
import LoginPage from "./pages/LoginPage";
|
|
import RegisterPage from "./pages/RegisterPage";
|
|
import NotesPage from "./pages/NotesPage";
|
|
import ProfilePage from "./pages/ProfilePage";
|
|
import SettingsPage from "./pages/SettingsPage";
|
|
import { NotificationStack } from "./components/common/Notification";
|
|
import { ProtectedRoute } from "./components/ProtectedRoute";
|
|
import { useTheme } from "./hooks/useTheme";
|
|
|
|
const AppContent: React.FC = () => {
|
|
useTheme(); // Инициализируем тему
|
|
|
|
return (
|
|
<>
|
|
<NotificationStack />
|
|
<BrowserRouter>
|
|
<Routes>
|
|
<Route path="/" element={<LoginPage />} />
|
|
<Route path="/register" element={<RegisterPage />} />
|
|
<Route
|
|
path="/notes"
|
|
element={
|
|
<ProtectedRoute>
|
|
<NotesPage />
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/profile"
|
|
element={
|
|
<ProtectedRoute>
|
|
<ProfilePage />
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/settings"
|
|
element={
|
|
<ProtectedRoute>
|
|
<SettingsPage />
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route path="*" element={<Navigate to="/" replace />} />
|
|
</Routes>
|
|
</BrowserRouter>
|
|
</>
|
|
);
|
|
};
|
|
|
|
export const App: React.FC = () => {
|
|
return (
|
|
<Provider store={store}>
|
|
<AppContent />
|
|
</Provider>
|
|
);
|
|
};
|
|
|
|
export default App;
|