diff --git a/src/components/DesktopCard.tsx b/src/components/DesktopCard.tsx index fe90a49..ed07312 100644 --- a/src/components/DesktopCard.tsx +++ b/src/components/DesktopCard.tsx @@ -42,7 +42,7 @@ export default function DesktopCard({ server }: IDesktopCardProps) { async function handleClickCreateSession() { setPosition("right"); - setModal(); + setModal(); } return ( diff --git a/src/components/ProjectSelector.tsx b/src/components/ProjectSelector.tsx new file mode 100644 index 0000000..d4747e1 --- /dev/null +++ b/src/components/ProjectSelector.tsx @@ -0,0 +1,5 @@ +function ProjectSelector() { + return
; +} + +export default ProjectSelector; diff --git a/src/components/TableSelector.tsx b/src/components/TableSelector.tsx new file mode 100644 index 0000000..698c228 --- /dev/null +++ b/src/components/TableSelector.tsx @@ -0,0 +1,50 @@ +import clsx from "clsx"; +import { IServer } from "../types/IServer"; +import LightningIcon from "./icons/LightningIcon"; + +interface TableSelectorProps { + tables: IServer[]; + selectedTable: IServer | null; + onSelect: (table: IServer) => void; +} + +function TableSelector({ + tables, + selectedTable, + onSelect, +}: TableSelectorProps) { + return ( +
+ {tables.map((table) => ( + + ))} +
+ ); +} + +export default TableSelector; diff --git a/src/components/icons/LightningIcon.tsx b/src/components/icons/LightningIcon.tsx new file mode 100644 index 0000000..3a68d40 --- /dev/null +++ b/src/components/icons/LightningIcon.tsx @@ -0,0 +1,12 @@ +function LightningIcon() { + return ( + + + + ); +} + +export default LightningIcon; diff --git a/src/components/modals/CreateSessionModal.tsx b/src/components/modals/CreateSessionModal.tsx index 747d8f0..5679973 100644 --- a/src/components/modals/CreateSessionModal.tsx +++ b/src/components/modals/CreateSessionModal.tsx @@ -10,18 +10,25 @@ 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"; interface Props { servers: IServer[] | undefined; + targetServer: IServer | null; } -export default function CreateSessionModal({ servers }: Props) { +export default function CreateSessionModal({ + servers, + targetServer = null, +}: Props) { const { setModal } = useModalStore(); const [name, setName] = useState(""); const [phone, setPhone] = useState(""); const [email, setEmail] = useState(""); - const [selectedServer, setSelectedServer] = useState(); - const [selectedApp, setSelectedApp] = useState(); + const [selectedServer, setSelectedServer] = useState( + targetServer + ); + const [selectedApp, setSelectedApp] = useState(null); async function createClient() { console.log(name, phone, email); @@ -66,10 +73,33 @@ export default function CreateSessionModal({ servers }: Props) { return (
-
+
+

Новый сеанс

+
+
+
+ +
+

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

+
+ + + +
+
+
+

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

+
+
+ + {/*
@@ -169,7 +199,7 @@ export default function CreateSessionModal({ servers }: Props) { >

Запустить сеанс

-
+
*/} ); } diff --git a/src/types/IServer.ts b/src/types/IServer.ts index 77972b9..03b3b0f 100644 --- a/src/types/IServer.ts +++ b/src/types/IServer.ts @@ -9,4 +9,5 @@ export interface IServer { companyId: string; sessions?: ISession[]; apps?: IApp[]; + status: "online" | "offline"; }