From 9870866f1e1ae6a02b5fda743b3dad9e4bc48f28 Mon Sep 17 00:00:00 2001 From: Lanskikh Date: Tue, 3 Jun 2025 18:44:03 +0500 Subject: [PATCH] upd create session modal --- public/images/app_image.png | Bin 0 -> 11317 bytes src/components/NewButton.tsx | 14 +- src/components/ProjectSelector.tsx | 137 +++++++++++++++- src/components/Select.tsx | 21 +-- src/components/TableSelector.tsx | 4 +- src/components/icons/CheckIcon.tsx | 14 ++ src/components/icons/ChevronDownIcon.tsx | 8 +- src/components/icons/ChevronLeftIcon.tsx | 16 +- src/components/icons/StartSessionIcon.tsx | 12 ++ src/components/modals/CreateSessionModal.tsx | 158 ++++++------------- 10 files changed, 237 insertions(+), 147 deletions(-) create mode 100644 public/images/app_image.png create mode 100644 src/components/icons/CheckIcon.tsx create mode 100644 src/components/icons/StartSessionIcon.tsx diff --git a/public/images/app_image.png b/public/images/app_image.png new file mode 100644 index 0000000000000000000000000000000000000000..e83a62a1882809436cdf344f90e0038ca60f183f GIT binary patch literal 11317 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 literal 0 HcmV?d00001 diff --git a/src/components/NewButton.tsx b/src/components/NewButton.tsx index 6c731a6..c1d38f1 100644 --- a/src/components/NewButton.tsx +++ b/src/components/NewButton.tsx @@ -14,14 +14,20 @@ function NewButton({ size = "medium", className, ref, + type, + onClick, ...props }: NewButtonProps) { return ( + {isOpen && ( +
+
+ +
+ +
+
+

Смена проекта

+ { + e.preventDefault(); + setIsOpen(false); + }} + > + + + + +
+
+
+ {projects.map((project) => ( + + ))} +
+
+ { + setSelectedProject(pointedProject); + setIsOpen(false); + }} + > + Переключиться + + { + setIsOpen(false); + }} + > + Отменить + +
+
+
+ )} + + ); } export default ProjectSelector; diff --git a/src/components/Select.tsx b/src/components/Select.tsx index 442e7bc..31291cd 100644 --- a/src/components/Select.tsx +++ b/src/components/Select.tsx @@ -1,8 +1,8 @@ /* eslint-disable react-hooks/exhaustive-deps */ import { useEffect, useState } from "react"; -import Button from "./Button"; import { useClickAway } from "@uidotdev/usehooks"; import ArrowDownIcon from "./icons/ArrowDownIcon"; +import NewButton from "./NewButton"; interface Props { options: string[]; // ["StroyProject"] @@ -31,11 +31,13 @@ export default function Select({ options, onChange }: Props) { ref={ref} className="relative outline-black/10 outline w-[13.889vw] rounded-[0.556vw]" > - + {isOpen && (
{options.map((option) => ( - + ))}
)} diff --git a/src/components/TableSelector.tsx b/src/components/TableSelector.tsx index 698c228..49d5690 100644 --- a/src/components/TableSelector.tsx +++ b/src/components/TableSelector.tsx @@ -30,9 +30,9 @@ function TableSelector({ >

{table.name}

{table.status === "offline" ? ( -

Недоступен

+

Недоступен

) : table.sessions?.[0].status === "ended" ? ( -

Свободен

+

Свободен

) : (
diff --git a/src/components/icons/CheckIcon.tsx b/src/components/icons/CheckIcon.tsx new file mode 100644 index 0000000..64af8dc --- /dev/null +++ b/src/components/icons/CheckIcon.tsx @@ -0,0 +1,14 @@ +function CheckIcon() { + return ( + + + + ); +} + +export default CheckIcon; diff --git a/src/components/icons/ChevronDownIcon.tsx b/src/components/icons/ChevronDownIcon.tsx index ca4a92e..2010e71 100644 --- a/src/components/icons/ChevronDownIcon.tsx +++ b/src/components/icons/ChevronDownIcon.tsx @@ -1,12 +1,6 @@ function ChevronDownIcon() { return ( - + + ); diff --git a/src/components/icons/StartSessionIcon.tsx b/src/components/icons/StartSessionIcon.tsx new file mode 100644 index 0000000..1ef415a --- /dev/null +++ b/src/components/icons/StartSessionIcon.tsx @@ -0,0 +1,12 @@ +function StartSessionIcon() { + return ( + + + + ); +} + +export default StartSessionIcon; diff --git a/src/components/modals/CreateSessionModal.tsx b/src/components/modals/CreateSessionModal.tsx index 5679973..bf9c822 100644 --- a/src/components/modals/CreateSessionModal.tsx +++ b/src/components/modals/CreateSessionModal.tsx @@ -1,16 +1,15 @@ import { IServer } from "../../types/IServer.ts"; -import Button from "../Button.tsx"; -import DesktopSelect from "../DesktopSelect.tsx"; -import Input from "../Input.tsx"; -import DisplayIcon from "../icons/DisplayIcon.tsx"; -import Select from "../Select.tsx"; -import { useState } from "react"; +import { useRef, useState } from "react"; import { IApp } from "../../types/IApp.ts"; import api from "../../utils/api.ts"; import { ISession } from "../../types/ISession.ts"; import { IClient } from "../../types/IClient.ts"; import useModalStore from "../../stores/useModalStore.ts"; import TableSelector from "../TableSelector.tsx"; +import NewInput from "../NewInput.tsx"; +import StartSessionIcon from "../icons/StartSessionIcon.tsx"; +import NewButton from "../NewButton.tsx"; +import ProjectSelector from "../ProjectSelector.tsx"; interface Props { servers: IServer[] | undefined; @@ -31,8 +30,6 @@ export default function CreateSessionModal({ const [selectedApp, setSelectedApp] = useState(null); async function createClient() { - console.log(name, phone, email); - return await api .post("clients", { json: { @@ -71,10 +68,13 @@ export default function CreateSessionModal({ } } + const ref = useRef(null); + return (

Новый сеанс

@@ -89,117 +89,53 @@ export default function CreateSessionModal({

Укажите данные клиента

- - - + setPhone(e.target.value)} + placeholder="Номер телефона" + required + /> + setName(e.target.value)} + placeholder="Имя" + required + /> + setEmail(e.target.value)} + placeholder="Электронная почта" + />

Выберите параметры сеанса

-
-
- - {/*
-
-
-
- -
-
-

Создание сеанса

-

- Укажите данные клиента, выберите менеджера и стол -

-
-
-
-

- Имя * -

-
- setName(e.target.value)} + {selectedServer?.apps?.length && selectedServer?.apps?.length > 0 && ( + -
+ )}
-
-

- Номер * -

-
- setPhone(e.target.value)} - /> -
-
-
-

Электронная почта

-
- setEmail(e.target.value)} - /> -
-
-
-
-

Стол

- - !sessions || - !sessions.length || - sessions[0]?.status === "ended" - )} - value={selectedServer || undefined} - onChange={setSelectedServer} - /> -
-

- При запуске нового сеанса текущий будет завершен принудительно. -

-
- {selectedServer && ( -
-

Проекты

-
-