настройка роутинга: router.ts --> AppRouters.tsx
This commit is contained in:
parent
270dc35667
commit
e32ce04bb9
@ -6,7 +6,7 @@ const config: CapacitorConfig = {
|
|||||||
webDir: 'dist',
|
webDir: 'dist',
|
||||||
server:{
|
server:{
|
||||||
androidScheme: "http",
|
androidScheme: "http",
|
||||||
allowNavigation: [ "10.224.10.177:8093" ],
|
allowNavigation: [ "localhost:8093" ],
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -1,28 +1,48 @@
|
|||||||
import { Route } from "react-router-dom"
|
import { Route } from "react-router-dom"
|
||||||
import Home from "./pages/Home"
|
|
||||||
import Login from "./pages/Login"
|
|
||||||
import Welcome from "./pages/Welcome"
|
import Welcome from "./pages/Welcome"
|
||||||
import ForgotPassword from "./pages/ForgotPassword"
|
import Login from "./pages/Login"
|
||||||
|
import Home from "./pages/Home"
|
||||||
|
import ForgotPasword from "./pages/ForgotPassword"
|
||||||
import Courses from "./pages/Courses"
|
import Courses from "./pages/Courses"
|
||||||
import CourseExercises from "./pages/CourseExercises"
|
import CourseExercises from "./pages/CourseExercises"
|
||||||
import Exercise from "./pages/Exercise"
|
import Exercise from "./pages/Exercise"
|
||||||
import Settings from "./pages/Settings"
|
import Settings from "./pages/Settings"
|
||||||
import CourseComplete from "./pages/CourseComplete"
|
import CourseComplete from "./pages/CourseComplete"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import { getRouteWelcome } from "./shared/consts/router"
|
||||||
import { getRouteLogin } from "./shared/consts/router"
|
import { getRouteLogin } from "./shared/consts/router"
|
||||||
|
import { getRouteHome } from "./shared/consts/router"
|
||||||
|
import { getRouteForgotPassword } from "./shared/consts/router"
|
||||||
|
import { getRouteCourses } from "./shared/consts/router"
|
||||||
|
import { getRouteCourseExercises } from "./shared/consts/router"
|
||||||
|
import { getRouteExercise } from "./shared/consts/router"
|
||||||
|
import { getRouteSettings } from "./shared/consts/router"
|
||||||
|
import { getRouteCourseComplete } from "./shared/consts/router"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const AppRoutes = () => (
|
const AppRoutes = () => (
|
||||||
<>
|
<>
|
||||||
<Route exact path="/" component={Welcome} />
|
<Route path={getRouteWelcome()} component={Welcome} />
|
||||||
<Route path="/home" component={Home} exact />
|
|
||||||
<Route path={getRouteLogin()} component={Login} />
|
<Route path={getRouteLogin()} component={Login} />
|
||||||
<Route path="/forgot-password" component={ForgotPassword} />
|
<Route path={getRouteHome()} component={Home} exact />
|
||||||
<Route path="/welcome" component={Welcome} />
|
<Route path={getRouteForgotPassword()} component={ForgotPasword} />
|
||||||
<Route path="/courses" component={Courses} />
|
<Route path={getRouteCourses()} component={Courses} />
|
||||||
<Route path="/course/:id/exercises" component={CourseExercises} />
|
<Route path={getRouteCourseExercises(':id')} component={CourseExercises} />
|
||||||
<Route path="/exercise/:id" component={Exercise} />
|
<Route path={getRouteExercise(':id')} component={Exercise} />
|
||||||
<Route path="/settings" component={Settings} />
|
<Route path={getRouteSettings()} component={Settings} exact />
|
||||||
<Route path="/course-complete" component={CourseComplete} />
|
<Route path={getRouteCourseComplete()} component={CourseComplete} />
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
|
||||||
export default AppRoutes
|
export default AppRoutes
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ import { AUTH_TOKEN, USER_KEY } from '@/shared/consts/localStorage';
|
|||||||
import { getRouteLogin } from '@/shared/consts/router';
|
import { getRouteLogin } from '@/shared/consts/router';
|
||||||
|
|
||||||
const instance = axios.create({
|
const instance = axios.create({
|
||||||
baseURL: 'http://10.224.10.177:8093/',
|
baseURL: 'http://localhost:8093/',
|
||||||
headers: {
|
headers: {
|
||||||
'Content-type': 'application/json',
|
'Content-type': 'application/json',
|
||||||
},
|
},
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
import type React from "react"
|
import type React from "react"
|
||||||
import { useState } from "react"
|
import { useState } from "react"
|
||||||
import { useHistory } from "react-router-dom"
|
import { useHistory, useParams } from "react-router-dom"
|
||||||
|
|
||||||
import HeaderNav from "../components/HeaderNav"
|
import HeaderNav from "../components/HeaderNav"
|
||||||
import BottomNavigation from "../components/BottomNavigation"
|
import BottomNavigation from "../components/BottomNavigation"
|
||||||
@ -10,7 +10,7 @@ import video from "../assets/video.mov"
|
|||||||
|
|
||||||
const CourseExercises: React.FC = () => {
|
const CourseExercises: React.FC = () => {
|
||||||
const history = useHistory()
|
const history = useHistory()
|
||||||
// const { id } = useParams<{ id: string }>()
|
const { id } = useParams<{ id: string }>();
|
||||||
const [currentSlide, setCurrentSlide] = useState(0)
|
const [currentSlide, setCurrentSlide] = useState(0)
|
||||||
|
|
||||||
|
|
||||||
@ -154,7 +154,7 @@ const course = {
|
|||||||
|
|
||||||
|
|
||||||
<button
|
<button
|
||||||
onClick={() => history.push(`/exercise/${currentExercise.id}`)}
|
onClick={() => history.push(getExerciseRoute(currentExercise.id))}
|
||||||
className="w-full bg-gradient-to-r bg-orange-400 text-white font-semibold py-4 px-6 rounded-2xl hover:shadow-2xl transition-all duration-300 transform hover:scale-105 shadow-lg backdrop-blur-sm"
|
className="w-full bg-gradient-to-r bg-orange-400 text-white font-semibold py-4 px-6 rounded-2xl hover:shadow-2xl transition-all duration-300 transform hover:scale-105 shadow-lg backdrop-blur-sm"
|
||||||
>
|
>
|
||||||
Начать упражнение
|
Начать упражнение
|
||||||
|
@ -63,11 +63,7 @@ const Home: React.FC = () => {
|
|||||||
className="bg-white/30 backdrop-blur-2xl rounded-3xl p-6 border border-white/20 shadow-xl cursor-pointer hover:shadow-2xl transition-all duration-300 transform hover:scale-[1.02]"
|
className="bg-white/30 backdrop-blur-2xl rounded-3xl p-6 border border-white/20 shadow-xl cursor-pointer hover:shadow-2xl transition-all duration-300 transform hover:scale-[1.02]"
|
||||||
>
|
>
|
||||||
<div className="flex items-center space-x-5">
|
<div className="flex items-center space-x-5">
|
||||||
{/* <div
|
|
||||||
className={`w-16 h-16 bg-gradient-to-br ${course.color} rounded-2xl flex items-center justify-center shadow-lg`}
|
|
||||||
>
|
|
||||||
<span className="text-2xl text-white filter drop-shadow-sm">💪</span>
|
|
||||||
</div> */}
|
|
||||||
<div className="flex-1">
|
<div className="flex-1">
|
||||||
<h3 className="font-semibold text-[#5F5C5C] text-lg mb-2">{course.name}</h3>
|
<h3 className="font-semibold text-[#5F5C5C] text-lg mb-2">{course.name}</h3>
|
||||||
<div className="bg-white/50 rounded-full h-3 mb-2 overflow-hidden">
|
<div className="bg-white/50 rounded-full h-3 mb-2 overflow-hidden">
|
||||||
@ -79,7 +75,8 @@ const Home: React.FC = () => {
|
|||||||
<p className="text-sm text-[#5F5C5C]/70 font-semibold">{course.progress}% завершено</p>
|
<p className="text-sm text-[#5F5C5C]/70 font-semibold">{course.progress}% завершено</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="text-[#2BACBE] transform transition-transform duration-300 hover:translate-x-1">
|
<div className="text-[#2BACBE] transform transition-transform duration-300 hover:translate-x-1">
|
||||||
<span className="text-2xl font-bold">→</span>
|
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
"use client"
|
"use client"
|
||||||
|
|
||||||
import { useEffect, useState } from "react"
|
import { useEffect, useState } from "react"
|
||||||
import { useHistory } from "react-router-dom"
|
import { useHistory, Link } from "react-router-dom"
|
||||||
|
|
||||||
|
|
||||||
import HeaderNav from "../components/HeaderNav"
|
import HeaderNav from "../components/HeaderNav"
|
||||||
|
@ -7,6 +7,8 @@ import manImage from "../assets/man.svg" // Reverted to original import
|
|||||||
import { connect } from '../confconnect';
|
import { connect } from '../confconnect';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { toast } from 'sonner';
|
import { toast } from 'sonner';
|
||||||
|
import { getRouteHome } from '../shared/consts/router'
|
||||||
|
import { getRouteForgotPassword } from '../shared/consts/router'
|
||||||
|
|
||||||
|
|
||||||
export default function LoginPage() {
|
export default function LoginPage() {
|
||||||
@ -53,7 +55,7 @@ export default function LoginPage() {
|
|||||||
localStorage.setItem('isLoggedIn', 'true');
|
localStorage.setItem('isLoggedIn', 'true');
|
||||||
|
|
||||||
// Перенаправляем пользователя
|
// Перенаправляем пользователя
|
||||||
history.push("/home");
|
history.push(getRouteHome());
|
||||||
} else {
|
} else {
|
||||||
console.log('Ответ:', response);
|
console.log('Ответ:', response);
|
||||||
}
|
}
|
||||||
@ -111,7 +113,7 @@ export default function LoginPage() {
|
|||||||
console.log('Отправляемые данные:', { email, password });
|
console.log('Отправляемые данные:', { email, password });
|
||||||
|
|
||||||
// После этого можно перейти или показать сообщение
|
// После этого можно перейти или показать сообщение
|
||||||
history.push("/home")
|
history.push(getRouteHome())
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Ошибка при регистрации:', error)
|
console.error('Ошибка при регистрации:', error)
|
||||||
alert('Ошибка при регистрации')
|
alert('Ошибка при регистрации')
|
||||||
@ -258,7 +260,7 @@ export default function LoginPage() {
|
|||||||
</label>
|
</label>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => history.push("/forgot-password")}
|
onClick={() => history.push(getRouteForgotPassword())}
|
||||||
className="text-[#2BACBE] font-medium hover:text-[#2099A8] transition-colors"
|
className="text-[#2BACBE] font-medium hover:text-[#2099A8] transition-colors"
|
||||||
>
|
>
|
||||||
Забыли пароль?
|
Забыли пароль?
|
||||||
|
@ -1,20 +1,17 @@
|
|||||||
|
export const getRouteWelcome = () => `/welcome`;
|
||||||
export const getRouteLogin = () => `/login`;
|
export const getRouteLogin = () => `/login`;
|
||||||
export const getRouteRegister = () => `/auth/register`;
|
export const getRouteHome = () => `/home`;
|
||||||
export const getRouteResetPassword = () => `/auth/reset-password`;
|
export const getRouteForgotPassword = () => `/forgot-password`;
|
||||||
export const getRouteLkHome = () => `/lk`;
|
|
||||||
|
export const getRouteCourses = () => `/courses`;
|
||||||
|
export const getRouteCourseExercises = (id: number | string) => `/course/${id}/exercises`;
|
||||||
|
export const getRouteExercise = (id: number | string) => `/exercise/${id}`;
|
||||||
|
|
||||||
|
export const getRouteSettings = () => `/settings`;
|
||||||
|
export const getRouteCourseComplete = () => `/course-complete`;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export const getRouteUsersList = () => `/lk/admin/users`;
|
|
||||||
export const getRouteUserEdit = (id: number | string) => `/lk/admin/users/${id}`;
|
|
||||||
export const getRouteUserCreate = () => `/lk/admin/users/create`;
|
|
||||||
|
|
||||||
export const getRouteUserRolesList = () => `/lk/admin/user-roles`;
|
|
||||||
export const getRouteUserRoleEdit = (id: number | string) => `/lk/admin/user-roles/${id}`;
|
|
||||||
export const getRouteUserRoleCreate = () => `/lk/admin/user-roles/create`;
|
|
||||||
|
|
||||||
export const getRouterExercisesList = () =>`/lk/admin/exercises`;
|
|
||||||
export const getRouterExercisesEdit = (id: number | string) =>`/lk/admin/exercises/${id}`;
|
|
||||||
export const getRouterExercisesCreate = () =>`/lk/admin/exercises/create`;
|
|
||||||
|
|
||||||
export const getRouterCoursesList = () => `/lk/admin/courses`;
|
|
||||||
export const getRouterCoursesEdit = (id: number | string) => `/lk/admin/courses/${id}`;
|
|
||||||
export const getRouterCoursesCreate = () => `/lk/admin/courses/create`;
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user