From 0a0dd559f04bc3afbd0b252d339964fb9154b4c4 Mon Sep 17 00:00:00 2001 From: nguyentrungthat <80239428+nguentrungthat@users.noreply.github.com> Date: Tue, 28 Oct 2025 16:56:57 +0700 Subject: [PATCH] Update --- FRONTEND/package-lock.json | 54 ++++ FRONTEND/package.json | 1 + FRONTEND/public/logo-ATC-removebg-preview.png | Bin 0 -> 105934 bytes FRONTEND/src/App.module.css | 24 +- FRONTEND/src/App.tsx | 263 ++++++++++++++---- .../AuthenticationImage.module.css | 86 ++---- .../src/components/Authentication/Login.tsx | 183 ++++-------- .../components/Authentication/LoginPage.tsx | 63 +++++ .../components/Authentication/Register.tsx | 136 +++++---- FRONTEND/src/components/CardLine.tsx | 41 ++- FRONTEND/src/components/DrawerScenario.tsx | 63 ++++- FRONTEND/src/components/ModalTerminal.tsx | 120 ++++++++ FRONTEND/src/components/TerminalXTerm.tsx | 50 +--- FRONTEND/src/context/SocketContext.tsx | 24 +- FRONTEND/src/untils/helper.ts | 5 + FRONTEND/src/untils/types.ts | 15 +- 16 files changed, 760 insertions(+), 368 deletions(-) create mode 100644 FRONTEND/public/logo-ATC-removebg-preview.png create mode 100644 FRONTEND/src/components/Authentication/LoginPage.tsx create mode 100644 FRONTEND/src/components/ModalTerminal.tsx diff --git a/FRONTEND/package-lock.json b/FRONTEND/package-lock.json index 141d0c1..4f1a129 100644 --- a/FRONTEND/package-lock.json +++ b/FRONTEND/package-lock.json @@ -18,6 +18,7 @@ "axios": "^1.12.2", "react": "^19.1.1", "react-dom": "^19.1.1", + "react-router-dom": "^7.9.4", "socket.io-client": "^4.8.1", "xterm": "^5.3.0" }, @@ -2216,6 +2217,15 @@ "dev": true, "license": "MIT" }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -3595,6 +3605,44 @@ } } }, + "node_modules/react-router": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.4.tgz", + "integrity": "sha512-SD3G8HKviFHg9xj7dNODUKDFgpG4xqD5nhyd0mYoB5iISepuZAvzSr8ywxgxKJ52yRzf/HWtVHc9AWwoTbljvA==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.9.4.tgz", + "integrity": "sha512-f30P6bIkmYvnHHa5Gcu65deIXoA2+r3Eb6PJIAddvsT9aGlchMatJ51GgpU470aSqRRbFX22T70yQNUGuW3DfA==", + "license": "MIT", + "dependencies": { + "react-router": "7.9.4" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, "node_modules/react-style-singleton": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", @@ -3753,6 +3801,12 @@ "semver": "bin/semver.js" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", diff --git a/FRONTEND/package.json b/FRONTEND/package.json index fc6e012..913d62b 100644 --- a/FRONTEND/package.json +++ b/FRONTEND/package.json @@ -20,6 +20,7 @@ "axios": "^1.12.2", "react": "^19.1.1", "react-dom": "^19.1.1", + "react-router-dom": "^7.9.4", "socket.io-client": "^4.8.1", "xterm": "^5.3.0" }, diff --git a/FRONTEND/public/logo-ATC-removebg-preview.png b/FRONTEND/public/logo-ATC-removebg-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..fab48482caa1a596a1026f81c097a448ce6da887 GIT binary patch literal 105934 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%0Def|$x8L{F58IgjlrMA!sjpoM99Oz`a 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 literal 0 HcmV?d00001 diff --git a/FRONTEND/src/App.module.css b/FRONTEND/src/App.module.css index 8a4c804..821b93d 100644 --- a/FRONTEND/src/App.module.css +++ b/FRONTEND/src/App.module.css @@ -3,7 +3,7 @@ } body { - font-family: 'Mulish', sans-serif; + font-family: "Mulish", sans-serif; } .list { @@ -48,7 +48,25 @@ body { } } -.content{ +.content { width: 100%; border-top: 1px #ccc solid; -} \ No newline at end of file +} + +.userName { + position: relative; + font-size: 16px; + font-weight: 600; + color: #222; + text-align: center; + margin-right: 8px; +} + +.userName::after { + content: ""; + display: block; + height: 1px; + background-color: #007bff; /* blue accent */ + margin: 0.1rem auto 0; + border-radius: 3px; +} diff --git a/FRONTEND/src/App.tsx b/FRONTEND/src/App.tsx index f02baa0..5f1b4d0 100644 --- a/FRONTEND/src/App.tsx +++ b/FRONTEND/src/App.tsx @@ -4,7 +4,7 @@ import "@mantine/notifications/styles.css"; import "./App.css"; import classes from "./App.module.css"; -import { Suspense, useEffect, useState } from "react"; +import { Suspense, useEffect, useMemo, useState } from "react"; import { Tabs, Text, @@ -17,8 +17,16 @@ import { Button, ActionIcon, LoadingOverlay, + Avatar, + Tooltip, } from "@mantine/core"; -import type { IScenario, LineConfig, TLine, TStation } from "./untils/types"; +import type { + IScenario, + LineConfig, + TLine, + TStation, + TUser, +} from "./untils/types"; import axios from "axios"; import CardLine from "./components/CardLine"; import { IconEdit, IconSettingsPlus } from "@tabler/icons-react"; @@ -27,6 +35,8 @@ import { ButtonDPELP, ButtonScenario } from "./components/ButtonAction"; import StationSetting from "./components/FormAddEdit"; import DrawerScenario from "./components/DrawerScenario"; import { Notifications } from "@mantine/notifications"; +import ModalTerminal from "./components/ModalTerminal"; +import PageLogin from "./components/Authentication/LoginPage"; const apiUrl = import.meta.env.VITE_BACKEND_URL; @@ -34,6 +44,14 @@ const apiUrl = import.meta.env.VITE_BACKEND_URL; * Main Component */ function App() { + const user = useMemo(() => { + return localStorage.getItem("user") && + typeof localStorage.getItem("user") === "string" + ? JSON.parse(localStorage.getItem("user") || "") + : null; + }, []); + if (!user) window.location.href = "/"; + document.title = "Automation Test"; const { socket } = useSocket(); const [stations, setStations] = useState([]); @@ -53,6 +71,10 @@ function App() { const [isEditStation, setIsEditStation] = useState(false); const [stationEdit, setStationEdit] = useState(); const [scenarios, setScenarios] = useState([]); + const [openModalTerminal, setOpenModalTerminal] = useState(false); + const [selectedLine, setSelectedLine] = useState(); + const [loadingTerminal, setLoadingTerminal] = useState(true); + const [usersConnecting, setUsersConnecting] = useState([]); // function get list station const getStation = async () => { @@ -93,24 +115,74 @@ function App() { if (!socket || !stations?.length) return; socket.on("line_connected", updateStatus); + socket.on("line_disconnected", updateStatus); + socket?.on("line_output", (data) => { + updateValueLineStation(data?.lineId, "netOutput", data.data); + }); + + socket?.on("line_error", (data) => { + updateValueLineStation(data?.lineId, "netOutput", data.error); + }); + + socket?.on("init", (data) => { + if (Array.isArray(data)) { + data.forEach((value) => { + updateValueLineStation(value?.id, "netOutput", value.output); + updateStatus({ ...value, lineId: value.id }); + }); + } + }); + + socket?.on("user_connecting", (data) => { + if (Array.isArray(data)) { + setUsersConnecting(data); + } + }); + + socket?.on("user_open_cli", (data) => { + setTimeout(() => { + updateValueLineStation(data?.lineId, "cliOpened", true); + updateValueLineStation( + data?.lineId, + "userEmailOpenCLI", + data?.userEmailOpenCLI + ); + updateValueLineStation(data?.lineId, "userOpenCLI", data?.userOpenCLI); + }, 100); + }); + + socket?.on("user_close_cli", (data) => { + setTimeout(() => { + updateValueLineStation(data?.lineId, "cliOpened", false); + updateValueLineStation(data?.lineId, "userEmailOpenCLI", ""); + updateValueLineStation(data?.lineId, "userOpenCLI", ""); + }, 100); + }); + // ✅ cleanup on unmount or when socket changes return () => { + socket.off("init"); + socket.off("line_output"); + socket.off("line_error"); socket.off("line_connected"); socket.off("line_disconnected"); + socket.off("user_connecting"); + socket.off("user_open_cli"); + socket.off("user_close_cli"); }; }, [socket, stations]); const updateStatus = (data: LineConfig) => { const line = getLine(data.lineId, data.stationId); - if (line) { - updateValueLineStation(line, "status", data.status); + if (line?.id) { + updateValueLineStation(line.id, "status", data.status); } }; const updateValueLineStation = ( - currentLine: TLine, + lineId: number, field: K, value: TLine[K] ) => { @@ -120,10 +192,20 @@ function App() { ? { ...station, lines: (station?.lines || [])?.map((lineItem: TLine) => { - if (lineItem.id === currentLine.id) { + if (lineItem.id === lineId) { return { ...lineItem, - [field]: value, + [field]: + field === "netOutput" + ? (lineItem.netOutput || "") + value + : value, + output: field === "netOutput" ? value : lineItem.output, + loadingOutput: + field === "netOutput" + ? lineItem.loadingOutput + ? false + : true + : false, }; } return lineItem; @@ -132,6 +214,24 @@ function App() { : station ) ); + + if (selectedLine) { + const line = { + ...selectedLine, + [field]: + field === "netOutput" + ? (selectedLine.netOutput || "") + value + : value, + output: field === "netOutput" ? value : selectedLine.output, + loadingOutput: + field === "netOutput" + ? selectedLine.loadingOutput + ? false + : true + : false, + }; + setSelectedLine(line); + } }; const getLine = (lineId: number, stationId: number) => { @@ -142,63 +242,106 @@ function App() { } else return null; }; + const openTerminal = (line: TLine) => { + setOpenModalTerminal(true); + setSelectedLine(line); + socket?.emit("open_cli", { + lineId: line.id, + stationId: line.station_id, + userEmail: user?.email, + userName: user?.fullName, + }); + }; + return ( - + setActiveTab(id?.toString() || "0")} + onChange={(id) => { + setActiveTab(id?.toString() || "0"); + setLoadingTerminal(false); + setTimeout(() => { + setLoadingTerminal(true); + }, 100); + }} variant="none" keepMounted={false} > - - {stations.map((station) => ( - - {station.name} - - ))} + + + {usersConnecting.map((el) => ( + + + {el.userName.slice(0, 2)} + + + ))} + + + {stations.map((station) => ( + + {station.name} + + ))} - - - {Number(activeTab) ? ( + + + {Number(activeTab) ? ( + { + setStationEdit( + stations.find((el) => el.id === Number(activeTab)) + ); + setIsOpenAddStation(true); + setIsEditStation(true); + }} + > + + + ) : ( + "" + )} { - setStationEdit( - stations.find((el) => el.id === Number(activeTab)) - ); setIsOpenAddStation(true); - setIsEditStation(true); + setIsEditStation(false); + setStationEdit(undefined); }} > - + - ) : ( - "" - )} - + + + {user?.fullName} + - + {stations.map((station) => ( ))} @@ -309,8 +456,9 @@ function App() { }, 10000); }} /> - {scenarios.map((el) => ( + {scenarios.map((el, i) => ( + + { + setOpenModalTerminal(false); + setSelectedLine(undefined); + }} + line={selectedLine} + socket={socket} + stationItem={stations.find((el) => el.id === Number(activeTab))} + scenarios={scenarios} + /> ); } export default function Main() { + const user = localStorage.getItem("user"); return ( @@ -363,7 +524,13 @@ export default function Main() { } > - + {user ? ( + + ) : ( + + + + )} diff --git a/FRONTEND/src/components/Authentication/AuthenticationImage.module.css b/FRONTEND/src/components/Authentication/AuthenticationImage.module.css index 9abac98..f67c13a 100644 --- a/FRONTEND/src/components/Authentication/AuthenticationImage.module.css +++ b/FRONTEND/src/components/Authentication/AuthenticationImage.module.css @@ -1,70 +1,22 @@ .wrapper { - min-height: rem(100vh); - background-size: cover; - background-image: url(https://images.unsplash.com/photo-1484242857719-4b9144542727?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1280&q=80); - } - - .form { - border-right: rem(1px) solid light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-7)); - min-height: rem(100vh); - max-width: rem(500px); - padding-top: rem(80px); - @media (max-width: var(--mantine-breakpoint-sm)) { - max-width: 100%; - }; - font-weight: 600; - } - - .title { - color: light-dark(var(--mantine-color-black), var(--mantine-color-white)); - font-family: - Greycliff CF, - var(--mantine-font-family); - } - - .google-btn { - display: flex; - align-items: center; - justify-content: center; - border: 1px solid #4285f4; - border-radius: 4px; - background-color: white; - margin: 15px auto; - font-size: 16px; - font-weight: bold; - cursor: pointer; - transition: background-color 0.3s ease; - } - - .google-btn:hover { - background-color: #f0f0f0; - } - - .google-btn:active { - background-color: #e0e0e0; - } - - .google-icon { - width: 20px; - height: 20px; - margin-right: 10px; - } - - .title { - position: relative; - font-size: 1.5rem; - font-weight: 600; - color: #222; - text-align: center; - margin-bottom: 1.5rem; + height: 100vh; + background-size: cover; + background-image: url(https://images.unsplash.com/photo-1484242857719-4b9144542727?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1280&q=80); + display: flex; + justify-content: center; + align-items: center; } -.title::after { - content: ""; - display: block; - width: 200px; - height: 2px; - background-color: #007bff; /* blue accent */ - margin: 0.1rem auto 0; - border-radius: 3px; -} \ No newline at end of file +.form { + border-right: rem(1px) solid + light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-7)); + max-width: rem(450px); + padding-top: rem(80px); + + font-weight: 600; +} + +.title { + color: light-dark(var(--mantine-color-black), var(--mantine-color-white)); + font-family: Greycliff CF, var(--mantine-font-family); +} diff --git a/FRONTEND/src/components/Authentication/Login.tsx b/FRONTEND/src/components/Authentication/Login.tsx index fd5febc..0f3e6c4 100644 --- a/FRONTEND/src/components/Authentication/Login.tsx +++ b/FRONTEND/src/components/Authentication/Login.tsx @@ -1,105 +1,80 @@ -import { useGoogleLogin } from '@react-oauth/google' -import { emailRegex } from '@/utils/formRegexs' +import { Button, PasswordInput, TextInput } from "@mantine/core"; +import { useForm } from "@mantine/form"; +import { notifications } from "@mantine/notifications"; +import axios from "axios"; -import { useDispatch, useSelector } from 'react-redux' -import { AppDispatch, RootState } from '@/rtk/store' -import { - loginAsync, - loginERPAsync, - loginWithGoogleAsync, -} from '@/rtk/slices/authSlice' - -import { Box, Button, PasswordInput, TextInput } from '@mantine/core' -import { useForm } from '@mantine/form' - -import classes from './AuthenticationImage.module.css' -import { useNavigate } from 'react-router-dom' - -import ImgERP from '../../lib/images/erp.jpg' -import { useState } from 'react' +const apiUrl = import.meta.env.VITE_BACKEND_URL; type TLogin = { - email: string - password: string -} + email: string; + password: string; +}; const Login = () => { - const navigate = useNavigate() - const dispatch = useDispatch() - const { status } = useSelector((state: RootState) => state.auth) - const [isLoginERP, setIsLoginERP] = useState(false) - const formLogin = useForm({ initialValues: { - email: '', - password: '', + email: "", + password: "", }, validate: (values) => ({ - email: - values.email === '' - ? 'Email is required' - : isLoginERP - ? null - : emailRegex.test(values.email) - ? null - : 'Invalid email', + email: values.email === "" ? "Email is required" : null, - password: values.password === '' ? 'Password is required' : null, + password: values.password === "" ? "Password is required" : null, }), - }) + }); - const handleLogin = async (values: TLogin) => { - if (isLoginERP) { + const handleLogin = async () => { + try { + if (!formLogin.values.email) { + notifications.show({ + title: "Error", + message: "Email is required", + color: "red", + }); + return; + } + if (!formLogin.values.password) { + notifications.show({ + title: "Error", + message: "Password is required", + color: "red", + }); + return; + } const payload = { - userEmail: values.email, - password: values.password, - } - const resultAction = await dispatch(loginERPAsync(payload)) - - if (loginERPAsync.fulfilled.match(resultAction)) { - // set interval to wait for localStorage to be set - window.location.href = '/dashboard' - } - } else { - const resultAction = await dispatch(loginAsync(values)) - - if (loginAsync.fulfilled.match(resultAction)) { - navigate('/dashboard') + email: formLogin.values.email, + password: formLogin.values.password, + }; + const response = await axios.post(apiUrl + "api/auth/login", payload); + if (response.data.user) { + const user = response.data.user; + localStorage.setItem("user", JSON.stringify(user)); + window.location.href = "/"; } + } catch (error) { + console.log(error); + notifications.show({ + title: "Error", + message: "Login fail, please try again!", + color: "red", + }); } - } - - const handleLoginGG = useGoogleLogin({ - onSuccess: async (codeResponse) => { - const accessToken = codeResponse.access_token - const resultAction = await dispatch(loginWithGoogleAsync(accessToken)) - - if (loginWithGoogleAsync.fulfilled.match(resultAction)) { - navigate('/dashboard') - } - }, - onError: (error) => console.log('Login Failed:', error), - }) + }; return (
-
-

- {isLoginERP ? 'Login with ERP account' : 'Login with ATC account'} -

-
{ - formLogin.setFieldValue('email', e.target.value!) + formLogin.setFieldValue("email", e.target.value!); }} required size="md" @@ -110,7 +85,7 @@ const Login = () => { value={formLogin.values.password} error={formLogin.errors.password} onChange={(e) => { - formLogin.setFieldValue('password', e.target.value!) + formLogin.setFieldValue("password", e.target.value!); }} required mt="md" @@ -122,60 +97,12 @@ const Login = () => { mt="xl" size="md" type="submit" - loading={status === 'loading'} + loading={status === "loading"} > Sign in - - {!isLoginERP ? ( - - - - ) : ( - - - - )} - - - - - ) -} + ); +}; -export default Login +export default Login; diff --git a/FRONTEND/src/components/Authentication/LoginPage.tsx b/FRONTEND/src/components/Authentication/LoginPage.tsx new file mode 100644 index 0000000..59c0be1 --- /dev/null +++ b/FRONTEND/src/components/Authentication/LoginPage.tsx @@ -0,0 +1,63 @@ +import { useState } from "react"; +import { Anchor, Image, Paper, Text } from "@mantine/core"; +import Login from "./Login"; +import Register from "./Register"; +import classes from "./AuthenticationImage.module.css"; + +export const PageLogin = () => { + const [isRegister, setIsRegister] = useState(false); + + return ( +
+
+ + + + {isRegister ? ( + <> + + + + You have an account?{" "} + + href="#" + fw={700} + onClick={() => setIsRegister(false)} + > + Sign in + + + + ) : ( + <> + + + + Don't have an account?{" "} + + href="#" + fw={700} + onClick={() => setIsRegister(true)} + > + Register + + + + )} + +
+
+ ); +}; + +export default PageLogin; diff --git a/FRONTEND/src/components/Authentication/Register.tsx b/FRONTEND/src/components/Authentication/Register.tsx index dee2796..0ad3f48 100644 --- a/FRONTEND/src/components/Authentication/Register.tsx +++ b/FRONTEND/src/components/Authentication/Register.tsx @@ -1,48 +1,77 @@ -import { useState } from 'react' -import { useDispatch, useSelector } from 'react-redux' -import { AppDispatch, RootState } from '@/rtk/store' -import { registerAsync } from '@/rtk/slices/authSlice' +import { useState } from "react"; -import PasswordRequirementInput from '../PasswordRequirementInput/PasswordRequirementInput' -import { emailRegex, passwordRegex } from '@/utils/formRegexs' -import { requirementsPassword } from '@/rtk/helpers/variables' - -import { Box, Button, PasswordInput, TextInput } from '@mantine/core' +import { Box, Button, PasswordInput, TextInput } from "@mantine/core"; +import { emailRegex } from "../../untils/helper"; +import { notifications } from "@mantine/notifications"; +import axios from "axios"; +const apiUrl = import.meta.env.VITE_BACKEND_URL; type TRegister = { - email: string - password: string - confirm_password: string - full_name: string -} + email: string; + password: string; + confirm_password: string; + full_name: string; +}; function Register() { - const dispatch = useDispatch() - const { status } = useSelector((state: RootState) => state.auth) - const [formRegister, setFormRegister] = useState({ - email: '', - full_name: '', - password: '', - confirm_password: '', - }) + email: "", + full_name: "", + password: "", + confirm_password: "", + }); const handleRegister = async () => { - // Dispatch action registerAsync với dữ liệu form và đợi kết quả - const resultAction = await dispatch(registerAsync(formRegister)) - - // Kiểm tra nếu action thành công - if (registerAsync.fulfilled.match(resultAction)) { - // Tải lại trang web - // window.location.reload() + try { + if (!formRegister.email) { + notifications.show({ + title: "Error", + message: "Email is required", + color: "red", + }); + return; + } + if (!formRegister.password) { + notifications.show({ + title: "Error", + message: "Password is required", + color: "red", + }); + return; + } + const payload = { + email: formRegister.email, + password: formRegister.password, + full_name: formRegister.full_name, + }; + const response = await axios.post(apiUrl + "api/auth/register", payload); + if (response.data.user) { + const user = response.data.user; + user.fullName = user.full_name; + localStorage.setItem("user", JSON.stringify(user)); + window.location.href = "/"; + } else { + notifications.show({ + title: "Error", + message: response.data.message, + color: "red", + }); + } + } catch (error) { + console.log(error); + notifications.show({ + title: "Error", + message: "Register fail, please try again!", + color: "red", + }); } -} + }; return (
{ - e.preventDefault() - handleRegister() + e.preventDefault(); + handleRegister(); }} > { - setFormRegister({ ...formRegister, email: e.target.value }) + setFormRegister({ ...formRegister, email: e.target.value }); }} required size="md" @@ -68,19 +97,22 @@ function Register() { placeholder="Bill Gates" value={formRegister.full_name} onChange={(e) => { - setFormRegister({ ...formRegister, full_name: e.target.value }) + setFormRegister({ ...formRegister, full_name: e.target.value }); }} required size="md" /> - { + setFormRegister({ ...formRegister, password: e.target.value }); + }} + required + size="md" /> { - setFormRegister({ ...formRegister, confirm_password: e.target.value }) + setFormRegister({ + ...formRegister, + confirm_password: e.target.value, + }); }} required size="md" /> - + + ))} + + + + + ); +}; + +export default ModalTerminal; diff --git a/FRONTEND/src/components/TerminalXTerm.tsx b/FRONTEND/src/components/TerminalXTerm.tsx index a80bcb6..34bf95e 100644 --- a/FRONTEND/src/components/TerminalXTerm.tsx +++ b/FRONTEND/src/components/TerminalXTerm.tsx @@ -4,11 +4,11 @@ import "xterm/css/xterm.css"; import { FitAddon } from "@xterm/addon-fit"; import { SOCKET_EVENTS } from "../untils/constanst"; import type { Socket } from "socket.io-client"; -import type { LineConfig } from "../untils/types"; interface TerminalCLIProps { socket: Socket | null; content?: string; + initContent?: string; line_id: number; line_status: string; station_id: number; @@ -25,7 +25,7 @@ interface TerminalCLIProps { onDoubleClick?: () => void; fontSize?: number; miniSize?: boolean; - updateStatus: (value: LineConfig) => void; + loadingContent?: boolean; } const TerminalCLI: React.FC = ({ @@ -39,7 +39,8 @@ const TerminalCLI: React.FC = ({ onDoubleClick = () => {}, fontSize = 14, miniSize = false, - updateStatus, + initContent = "", + loadingContent = false, }) => { const xtermRef = useRef(null); const terminal = useRef(null); @@ -128,40 +129,7 @@ const TerminalCLI: React.FC = ({ if (fitRef.current) setTimeout(() => fitRef.current?.fit(), 500); } - }, [content]); - - useEffect(() => { - // Nhận output từ thiết bị và ghi vào terminal - socket?.on("line_output", (data) => { - if (data?.lineId === line_id && terminal.current) { - terminal.current?.write(data.data); - terminal.current?.focus(); - } - }); - - socket?.on("line_error", (data) => { - if (data?.lineId === line_id && terminal.current) { - terminal.current?.write(data.error); - } - }); - - socket?.on("init", (data) => { - if (Array.isArray(data)) { - data.forEach((value) => { - if (value?.id === line_id && terminal.current) { - terminal.current?.write(value.output); - updateStatus({ ...value, lineId: value.id }); - } - }); - } - }); - - return () => { - socket?.off("init"); - socket?.off("line_error"); - socket?.off("line_output"); - }; - }, []); + }, [content, loadingContent]); useEffect(() => { if (cliOpened) { @@ -182,7 +150,7 @@ const TerminalCLI: React.FC = ({ useEffect(() => { if (!loading) { if (terminal.current) { - terminal.current?.write(content); + terminal.current?.write(initContent); if (!miniSize && !isDisabled) terminal.current?.focus(); terminal.current.scrollToBottom(); } @@ -211,7 +179,7 @@ const TerminalCLI: React.FC = ({ height: "100%", backgroundColor: "black", paddingBottom: customStyle.paddingBottom ?? "10px", - minHeight: customStyle.maxHeight ?? "60vh", + minHeight: customStyle.maxHeight ?? "75vh", }} >
= ({ paddingLeft: customStyle.paddingLeft ?? "10px", paddingBottom: customStyle.paddingBottom ?? "10px", fontSize: customStyle.fontSize ?? "9px", - maxHeight: customStyle.maxHeight ?? "60vh", - height: customStyle.height ?? "60vh", + maxHeight: customStyle.maxHeight ?? "75vh", + height: customStyle.height ?? "75vh", padding: customStyle.padding ?? "4px", }} onDoubleClick={(event) => { diff --git a/FRONTEND/src/context/SocketContext.tsx b/FRONTEND/src/context/SocketContext.tsx index b20bab7..a215894 100644 --- a/FRONTEND/src/context/SocketContext.tsx +++ b/FRONTEND/src/context/SocketContext.tsx @@ -1,4 +1,10 @@ -import React, { createContext, useContext, useEffect, useState } from "react"; +import React, { + createContext, + useContext, + useEffect, + useMemo, + useState, +} from "react"; import { io, Socket } from "socket.io-client"; import { SOCKET_EVENTS } from "../untils/constanst"; import { notifications } from "@mantine/notifications"; @@ -15,9 +21,21 @@ export const SocketProvider: React.FC<{ children: React.ReactNode }> = ({ children, }) => { const [socket, setSocket] = useState(null); + const user = useMemo(() => { + return localStorage.getItem("user") && + typeof localStorage.getItem("user") === "string" + ? JSON.parse(localStorage.getItem("user") || "") + : null; + }, []); useEffect(() => { - const newSocket = io(SOCKET_URL); + if (!user) return; + const newSocket = io(SOCKET_URL, { + auth: { + userId: user?.id, + userName: user?.fullName, + }, + }); setSocket(newSocket); @@ -46,7 +64,7 @@ export const SocketProvider: React.FC<{ children: React.ReactNode }> = ({ newSocket.disconnect(); }; - }, []); + }, [user]); return ( diff --git a/FRONTEND/src/untils/helper.ts b/FRONTEND/src/untils/helper.ts index adf8ea9..ab956b4 100644 --- a/FRONTEND/src/untils/helper.ts +++ b/FRONTEND/src/untils/helper.ts @@ -2,3 +2,8 @@ export const numberOnly = (value: string): string => { const matched = value.match(/[\d.]+/g); return matched ? matched.join("") : ""; }; + +export const passwordRegex = + /^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[@$!%*?&#])[A-Za-z\d@$!%*?&#]{8,}$/; + +export const emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/; diff --git a/FRONTEND/src/untils/types.ts b/FRONTEND/src/untils/types.ts index a763653..7cf1eba 100644 --- a/FRONTEND/src/untils/types.ts +++ b/FRONTEND/src/untils/types.ts @@ -67,6 +67,8 @@ export type TLine = { inventory?: any; status?: string; netOutput?: string; + output?: string; + loadingOutput?: boolean; outlet?: number; cliOpened?: boolean; systemLogUrl?: string; @@ -84,14 +86,8 @@ export type TLine = { }; export type TUser = { - id: number; - email: string; - email_cc: string; - full_name: string; - package_id: string; - zulip: string; - token?: string; - name: string; + userId: number; + userName: string; }; export type APCProps = { @@ -144,7 +140,7 @@ export type IScenario = { title: string; body: string; timeout: number; - is_reboot: boolean; + isReboot: boolean; updated_at: string; }; @@ -153,5 +149,4 @@ export type IBodyScenario = { send: string; delay: string; repeat: string; - note: string; };