diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx
index d96d1ce..f8cb1fc 100644
--- a/frontend/src/App.jsx
+++ b/frontend/src/App.jsx
@@ -6,7 +6,7 @@ import PageNotFound from './pages/PageNotFound.jsx';
import MainPage from './pages/MainPage.jsx';
import LoginPage from './pages/LoginPage.jsx';
import router from './utils/routes.js';
-import AuthProvider, { PrivateRoute } from './context/AuthProvider.jsx';
+import AuthProvider from './context/AuthProvider.jsx';
const App = () => {
const { t } = useTranslation();
@@ -14,24 +14,19 @@ const App = () => {
return (
-
-
- {t('navBar.title')}
-
-
-
+
+
+ {t('navBar.title')}
+
+
+
-
-
- )} />
- )} />
- } />
+ } />
+ } />
} />
-
);
diff --git a/frontend/src/context/AuthProvider.jsx b/frontend/src/context/AuthProvider.jsx
index a2ea7d3..4f90c0f 100644
--- a/frontend/src/context/AuthProvider.jsx
+++ b/frontend/src/context/AuthProvider.jsx
@@ -1,8 +1,5 @@
import { useState } from 'react';
-import { useNavigate } from 'react-router-dom';
-import useAuth from '../hooks/index.jsx';
import AuthContext from '../context/index.jsx';
-import router from '../utils/routes.js';
// eslint-disable-next-line react/prop-types
const AuthProvider = ({ children }) => {
@@ -21,13 +18,4 @@ const AuthProvider = ({ children }) => {
);
};
-export const PrivateRoute = ({ children }) => {
- const auth = useAuth();
- const navigate = useNavigate();
-
- return (
- auth.loggedIn ? children : navigate(router.mainPath)
- );
-};
-
export default AuthProvider;
\ No newline at end of file
diff --git a/frontend/src/locales/ru.js b/frontend/src/locales/ru.js
index f3abfe9..b26fcfa 100644
--- a/frontend/src/locales/ru.js
+++ b/frontend/src/locales/ru.js
@@ -1,3 +1,5 @@
+import Channels from "../components/Сhannels";
+
export default {
translation: {
loginForm: {
@@ -11,6 +13,9 @@ export default {
navBar: {
title: 'Hexlet Chat',
button: 'Выйти',
+ },
+ channels: {
+ title: 'Каналы',
}
// singUpForm: {
// username: ''
diff --git a/frontend/src/pages/LoginPage.jsx b/frontend/src/pages/LoginPage.jsx
index ab489af..379023f 100644
--- a/frontend/src/pages/LoginPage.jsx
+++ b/frontend/src/pages/LoginPage.jsx
@@ -30,11 +30,11 @@ const LoginPage = () => {
onSubmit: async (values) => {
setAuthFailed(false);
try {
- const res = await axios.post(router.loginPath, values);
+ const res = await axios.post(router.loginPath(), values);
console.log(res);
localStorage.setItem('token', res.data.token);
auth.logIn();
- navigate(router.main);
+ navigate(router.main());
} catch (err) {
formik.setSubmitting(false);
if (axios.isAxiosError(err) && err.response.status === 401) {
diff --git a/frontend/src/pages/MainPage.jsx b/frontend/src/pages/MainPage.jsx
index de560f4..5f398f0 100644
--- a/frontend/src/pages/MainPage.jsx
+++ b/frontend/src/pages/MainPage.jsx
@@ -1,16 +1,30 @@
import { Container, Row, Col, Nav } from 'react-bootstrap';
+import { useEffect } from 'react';
+import { useTranslation } from 'react-i18next';
+import { useNavigate } from 'react-router-dom';
import AddChannelsButton from '../components/AddCannelsButton.jsx';
import Channel from '../components/Сhannels.jsx';
import MessageField from '../components/MessageField.jsx';
+import useAuth from '../hooks/index.jsx';
+import router from '../utils/routes.js';
const MainPage = () => {
+ const { t } = useTranslation();
+ const { loggedIn } = useAuth();
+ const navigate = useNavigate();
+
+ useEffect(() => {
+ if (!loggedIn) {
+ navigate(router.login());
+ }
+ }, []);
return (
-
Каналы
+
{t('channels.title')}