+
{server.sessions?.[0]?.status === "started" ? (
-
+
endSession()}
- className='flex gap-[0.556vw] items-center'
+ className="flex gap-[0.556vw] items-center"
>
-
+
- Идёт сеанс
-
+ Идёт сеанс
+
) : (
-
-
+
+
-
Создать сеанс
+
Создать сеанс
)}
diff --git a/src/components/ModalContainer.tsx b/src/components/ModalContainer.tsx
index aba4c89..c270e79 100644
--- a/src/components/ModalContainer.tsx
+++ b/src/components/ModalContainer.tsx
@@ -3,8 +3,8 @@ 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 { clsx as cn } from "clsx";
+import NewButton from "./NewButton";
function ModalContainer() {
const { modal, setModal, position } = useModalStore();
@@ -70,15 +70,16 @@ function ModalContainer() {
// }}
>
{modal}
-
+
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 (