diff --git a/src/assets/fonts/Poppins-Black.woff2 b/src/assets/fonts/Poppins-Black.woff2 new file mode 100644 index 0000000..43ffc0e Binary files /dev/null and b/src/assets/fonts/Poppins-Black.woff2 differ diff --git a/src/assets/fonts/Poppins-Bold.woff2 b/src/assets/fonts/Poppins-Bold.woff2 new file mode 100644 index 0000000..8badc9a Binary files /dev/null and b/src/assets/fonts/Poppins-Bold.woff2 differ diff --git a/src/assets/fonts/Poppins-Medium.woff2 b/src/assets/fonts/Poppins-Medium.woff2 new file mode 100644 index 0000000..a0027d4 Binary files /dev/null and b/src/assets/fonts/Poppins-Medium.woff2 differ diff --git a/src/assets/fonts/Poppins-Regular.woff2 b/src/assets/fonts/Poppins-Regular.woff2 new file mode 100644 index 0000000..bb274e5 Binary files /dev/null and b/src/assets/fonts/Poppins-Regular.woff2 differ diff --git a/src/assets/fonts/Poppins-SemiBold.woff2 b/src/assets/fonts/Poppins-SemiBold.woff2 new file mode 100644 index 0000000..3106307 Binary files /dev/null and b/src/assets/fonts/Poppins-SemiBold.woff2 differ diff --git a/src/index.css b/src/index.css index 6c0b075..a143d2f 100644 --- a/src/index.css +++ b/src/index.css @@ -1,6 +1,36 @@ @import "tailwindcss"; +@font-face { + font-family: 'Poppins'; + src: url('../src/assets/fonts/Poppins-Regular.woff2') format('woff2'); + font-weight: 400; /* обычный */ + font-style: normal; +} + +@font-face { + font-family: 'Poppins'; + src: url('../src/assets/fonts/Poppins-Medium.woff2') format('woff2'); + font-weight: 500; /* Medium */ + font-style: normal; +} + +@font-face { + font-family: 'Poppins'; + src: url('../src/assets/fonts/Poppins-Semibold.woff2') format('woff2'); + font-weight: 600; /* Semibold */ + font-style: normal; +} + +@font-face { + font-family: 'Poppins'; + src: url('../src/assets/fonts/Poppins-Bold.woff2') format('woff2'); + font-weight: 700; /* Bold */ + font-style: normal; +} + + + @custom-variant dark (&:is(.dark *)); :root { @@ -116,19 +146,31 @@ } @layer base { + * { @apply border-border outline-ring/50; + @apply font-poppins; + box-sizing: border-box; + } + html, body { height: 100%; + font-family: 'Poppins', sans-serif; } + + + + p, h1, h2, h3, h4, h5, h6 { + } -/* Custom glass-morphism effect */ -.glass-morphism { - background-color: rgba(255, 255, 255, 0.1); /* White with transparency */ - backdrop-filter: blur(10px); /* Blur effect */ - -webkit-backdrop-filter: blur(10px); /* For Safari */ - border: 1px solid rgba(255, 255, 255, 0.2); /* Subtle white border */ - box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); /* Shadow */ -} + .glass-morphism { + background-color: rgba(255, 255, 255, 0.1); /* Белый с прозрачностью */ + backdrop-filter: blur(10px); /* Эффект размытия */ + -webkit-backdrop-filter: blur(10px); /* Для Safari */ + border: 1px solid rgba(255, 255, 255, 0.2); /* Тонкая белая рамка */ + box-shadow: 0 8px 32px rgba(31, 38, 135, 0.37); /* Тень */ + + } + } \ No newline at end of file diff --git a/src/pages/Login.tsx b/src/pages/Login.tsx index 3e07cbb..453418a 100644 --- a/src/pages/Login.tsx +++ b/src/pages/Login.tsx @@ -3,8 +3,12 @@ import React, { useState } from "react" import { useHistory } from "react-router-dom" import manImage from "../assets/man.svg" // Reverted to original import + +import { connect } from '../confconnect'; import axios from 'axios'; + + export default function LoginPage() { const history = useHistory() // Стейты для формы входа @@ -28,7 +32,7 @@ export default function LoginPage() { const handleLogin = async (e: React.FormEvent) => { e.preventDefault(); try { - const response = await axios.post('http://localhost:8093/auth/api/login', { + const response = await connect.post('/auth/api/login', { email, password, rememberMe, @@ -68,7 +72,7 @@ const handleRegisterSubmit = async (e: React.FormEvent) => { return } try { - const response = await axios.post('http://localhost:8093/auth/api/register', { + const response = await connect.post('/auth/api/register', { email: registerFormData.email, name: registerFormData.email, password: registerFormData.password, @@ -84,6 +88,7 @@ const handleRegisterSubmit = async (e: React.FormEvent) => { localStorage.setItem('userName', data.user_name) console.log('Данные сохранены в localStorage') + alert('Вы успешно зерегистрировались!') // После этого можно перейти или показать сообщение history.push("/home") @@ -100,7 +105,6 @@ const handleRegisterInputChange = (e: React.ChangeEvent) => { }) } - diff --git a/src/pages/Settings.tsx b/src/pages/Settings.tsx index 1bca6b2..593a074 100644 --- a/src/pages/Settings.tsx +++ b/src/pages/Settings.tsx @@ -10,7 +10,6 @@ const Settings: React.FC = () => { const handleLogout = () => { // Simulate logout history.push("/login") - } return ( diff --git a/src/shared/consts/localStorage.ts b/src/shared/consts/localStorage.ts new file mode 100644 index 0000000..b2535b9 --- /dev/null +++ b/src/shared/consts/localStorage.ts @@ -0,0 +1,2 @@ +export const USER_KEY = 'user'; +export const AUTH_TOKEN = 'token'; diff --git a/src/shared/consts/router.ts b/src/shared/consts/router.ts new file mode 100644 index 0000000..3fc953f --- /dev/null +++ b/src/shared/consts/router.ts @@ -0,0 +1,20 @@ +export const getRouteLogin = () => `/auth/login`; +export const getRouteRegister = () => `/auth/register`; +export const getRouteResetPassword = () => `/auth/reset-password`; +export const getRouteLkHome = () => `/lk`; + +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`; diff --git a/tailwind.config.js b/tailwind.config.js index 870d5b1..27137bb 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,14 +1,21 @@ /** @type {import('tailwindcss').Config} */ -const defaultConfig = require("shadcn/ui/tailwind.config") +const defaultConfig = require("shadcn/ui/tailwind.config"); module.exports = { ...defaultConfig, -content: [ - ...defaultConfig.content, - "./pages/**/*.{js,ts,jsx,tsx,mdx}", - "./components/**/*.{js,ts,jsx,tsx,mdx}", - "./app/**/*.{js,ts,jsx,tsx,mdx}", - "*.{js,ts,jsx,tsx,mdx}", -], + content: [ + ...defaultConfig.content, + "./pages/**/*.{js,ts,jsx,tsx,mdx}", + "./components/**/*.{js,ts,jsx,tsx,mdx}", + "./app/**/*.{js,ts,jsx,tsx,mdx}", + "*.{js,ts,jsx,tsx,mdx}", + ], + // theme: { + // extend: { + // fontFamily: { + // poppins: ['Poppins', 'sans-serif'], + // }, + // }, + // }, plugins: [...defaultConfig.plugins, require("tailwindcss-animate")], -} +}; \ No newline at end of file diff --git a/tsconfig.app.json b/tsconfig.app.json index 227a6c6..d0c18ee 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -6,6 +6,7 @@ "lib": ["ES2022", "DOM", "DOM.Iterable"], "module": "ESNext", "skipLibCheck": true, + "allowJs": true, /* Bundler mode */ "moduleResolution": "bundler", @@ -23,5 +24,5 @@ "noFallthroughCasesInSwitch": true, "noUncheckedSideEffectImports": true }, - "include": ["src"] + "include": ["src", "src/confconnect.js"] } diff --git a/vite.config.ts b/vite.config.ts index ed6a260..909e6d0 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,8 +1,14 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import tailwindcss from '@tailwindcss/vite' +import path from 'path' // <-- добавьте этот импорт // https://vite.dev/config/ export default defineConfig({ - plugins: [react(), tailwindcss ()], -}) + plugins: [react(), tailwindcss()], + resolve: { + alias: { + '@': path.resolve(__dirname, 'src'), + }, + }, +}) \ No newline at end of file