diff --git a/src/components/modals/CreateSessionModal.tsx b/src/components/modals/CreateSessionModal.tsx index 8081ff2..a946528 100644 --- a/src/components/modals/CreateSessionModal.tsx +++ b/src/components/modals/CreateSessionModal.tsx @@ -24,7 +24,7 @@ export default function CreateSessionModal({ targetServerId, client }: Props) { const [name, setName] = useState(client?.name || null); const [phone, setPhone] = useState(client?.phone || null); const [email, setEmail] = useState(client?.email || null); - // const [isSessionExists, setIsSessionExists] = useState(false); + const [isSessionExists, setIsSessionExists] = useState(false); const queryClient = useQueryClient(); @@ -46,7 +46,7 @@ export default function CreateSessionModal({ targetServerId, client }: Props) { useEffect(() => { setSelectedApp( selectedServer?.sessions?.[0]?.app || - selectedServer?.apps?.[0].app || + selectedServer?.appsToServers?.[0]?.app || null ); }, [selectedServer]); @@ -114,70 +114,74 @@ export default function CreateSessionModal({ targetServerId, client }: Props) { }, }); - // const { mutate: endSession } = useMutation({ - // mutationKey: ["end-session", selectedServer?.sessions?.[0]?.id], - // mutationFn: () => - // api.put(`sessions/${selectedServer?.sessions?.[0]?.id}`, { - // json: { status: "ending" }, - // }), - // onMutate: () => queryClient.invalidateQueries({ queryKey: ["sessions"] }), - // }); + const { mutate: endSession } = useMutation({ + mutationKey: ["end-session", selectedServer?.sessions?.[0]?.id], + mutationFn: () => + api.put(`sessions/${selectedServer?.sessions?.[0]?.id}`, { + json: { status: "ending" }, + }), + onMutate: () => queryClient.invalidateQueries({ queryKey: ["sessions"] }), + }); async function handleClickCreateSession(e: React.FormEvent) { e.preventDefault(); if (!name || !phone || !selectedServer || !selectedApp) return; - // if (selectedServer?.sessions?.[0]?.status !== "started") { - createClient(undefined, { - onSuccess: (client) => { - createSession({ - clientId: client.id, - serverId: selectedServer.id, - appId: selectedApp.id, - }); + if (selectedServer?.sessions?.[0]?.status !== "started") { + createClient(undefined, { + onSuccess: (client) => { + createSession({ + clientId: client.id, + serverId: selectedServer.id, + appId: selectedApp.id, + }); + }, + }); + return; + } + + if (!isSessionExists) { + setIsSessionExists(true); + return; + } + + endSession(undefined, { + onError: (error) => { + console.log("Ошибка при завершении сессии:", error); }, }); - // return; - // } - - // if (!isSessionExists) { - // setIsSessionExists(true); - // return; - // } - - // endSession(undefined, { - // onError: (error) => { - // console.log("Ошибка при завершении сессии:", error); - // }, - // }); } - // useEffect(() => { - // if ( - // selectedServer && - // servers?.find((server) => server.id === selectedServer?.id)?.sessions?.[0] - // ?.status === "ended" && - // selectedApp - // // && isSessionExists - // ) - // createClient(undefined, { - // onSuccess: (client) => { - // createSession({ - // clientId: client.id, - // serverId: selectedServer?.id, - // appId: selectedApp.id, - // }); - // }, - // }); - // }, [ - // selectedApp, - // servers, - // createClient, - // createSession, - // // isSessionExists, - // selectedServer, - // ]); + useEffect(() => { + if ( + selectedServer && + servers?.find((server) => server.id === selectedServer?.id)?.sessions?.[0] + ?.status === "ended" && + selectedApp && + isSessionExists + ) + createClient(undefined, { + onSuccess: (client) => { + createSession({ + clientId: client.id, + serverId: selectedServer?.id, + appId: selectedApp.id, + }); + }, + }); + }, [ + selectedApp, + servers, + createClient, + createSession, + isSessionExists, + selectedServer, + ]); + + useEffect(() => { + console.log(selectedServer); + }, [selectedServer]); const ref = useRef(null); @@ -244,22 +248,22 @@ export default function CreateSessionModal({ targetServerId, client }: Props) {

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

{selectedServer && - selectedServer?.apps && - selectedServer?.apps?.length > 0 && ( + selectedServer?.appsToServers && + selectedServer.appsToServers?.length > 0 && ( app)} + projects={selectedServer?.appsToServers.map(({ app }) => app)} selectedProject={selectedApp} setSelectedProject={setSelectedApp} /> )}
- {/* {isSessionExists && ( */} - {/*
+ {isSessionExists && ( +
ghost error
-
*/} - {/* )} */} + + )}