From cd916271ccacd5d8e728fce092b1a211e989e433 Mon Sep 17 00:00:00 2001 From: Lanskikh Date: Fri, 21 Mar 2025 14:19:48 +0500 Subject: [PATCH] modal upd --- .env | 2 +- .gitignore | 1 + src/components/DesktopSelect.tsx | 28 +++++++++++++++++ src/components/ModalContainer.tsx | 28 ++++++++--------- src/components/modals/CreateSessionModal.tsx | 32 ++++++-------------- src/pages/DashboardPage.tsx | 28 ++++++++--------- 6 files changed, 68 insertions(+), 51 deletions(-) create mode 100644 src/components/DesktopSelect.tsx diff --git a/.env b/.env index f6cbcd3..d965dec 100644 --- a/.env +++ b/.env @@ -1 +1 @@ -VITE_API_URL=http://192.168.1.183:3000 \ No newline at end of file +VITE_API_URL=http://192.168.1.250:3000 \ No newline at end of file diff --git a/.gitignore b/.gitignore index a547bf3..438657a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ node_modules dist dist-ssr *.local +.env # Editor directories and files .vscode/* diff --git a/src/components/DesktopSelect.tsx b/src/components/DesktopSelect.tsx new file mode 100644 index 0000000..9e92ebe --- /dev/null +++ b/src/components/DesktopSelect.tsx @@ -0,0 +1,28 @@ +import { IServer } from '../types/IServer'; + +interface Props { + servers: IServer[]; +} + +export default function DesktopSelect({ servers }: Props) { + return ( +
+ {servers.map(({ id, name, sessions }) => ( +
+ {sessions && sessions?.length > 0 && ( +
+ )} +

{name}

+
+ ))} +
+ ); +} diff --git a/src/components/ModalContainer.tsx b/src/components/ModalContainer.tsx index cc7373a..52012b3 100644 --- a/src/components/ModalContainer.tsx +++ b/src/components/ModalContainer.tsx @@ -1,9 +1,9 @@ /* eslint-disable react-hooks/exhaustive-deps */ -import { useEffect, useRef } from "react"; -import useModalStore from "../stores/useModalStore"; -import { AnimatePresence, motion } from "motion/react"; -import CloseIcon from "./icons/CloseIcon"; -import Button from "./Button"; +import { useEffect, useRef } from 'react'; +import useModalStore from '../stores/useModalStore'; +import { AnimatePresence, motion } from 'motion/react'; +import CloseIcon from './icons/CloseIcon'; +import Button from './Button'; const duration = 300; @@ -24,7 +24,7 @@ function ModalContainer() { } function handleKeydown(e: KeyboardEvent) { - if (e.key !== "Escape") return; + if (e.key !== 'Escape') return; setIsOpen(false); } @@ -39,12 +39,12 @@ function ModalContainer() { }, [isOpen]); useEffect(() => { - window.addEventListener("resize", handleResize); - window.addEventListener("keydown", handleKeydown); + window.addEventListener('resize', handleResize); + window.addEventListener('keydown', handleKeydown); return () => { - window.removeEventListener("resize", handleResize); - window.removeEventListener("keydown", handleKeydown); + window.removeEventListener('resize', handleResize); + window.removeEventListener('keydown', handleKeydown); }; }, []); @@ -59,16 +59,16 @@ function ModalContainer() { >
-
+
setIsOpen(false)} /> -
+
{modal}