diff --git a/src/components/DesktopCard.tsx b/src/components/DesktopCard.tsx
index b53d3c8..3c2eada 100644
--- a/src/components/DesktopCard.tsx
+++ b/src/components/DesktopCard.tsx
@@ -11,6 +11,7 @@ import clsx from "clsx";
import ChevronRightIcon from "./icons/ChevronRightIcon";
import CurrentSessionModal from "./modals/CurrentSessionModal";
import SpinIcon from "./icons/SpinIcon";
+import { useIsMutating } from "@tanstack/react-query";
interface IDesktopCardProps {
server: Server;
@@ -19,6 +20,14 @@ interface IDesktopCardProps {
export default function DesktopCard({ server }: IDesktopCardProps) {
const { setModal, setPosition } = useModalStore();
+ const isStarting = useIsMutating({
+ mutationKey: ["create-session", server.id],
+ });
+
+ const isEnding = useIsMutating({
+ mutationKey: ["end-session", server.sessions?.[0]?.id],
+ });
+
async function handleClickCreateSession() {
setPosition("right");
setModal();
@@ -52,7 +61,7 @@ export default function DesktopCard({ server }: IDesktopCardProps) {
- {server.sessions?.[0]?.status === "starting" ? (
+ {server.sessions?.[0]?.status === "starting" || isStarting ? (
diff --git a/src/components/modals/CreateSessionModal.tsx b/src/components/modals/CreateSessionModal.tsx
index cf5eae3..3228d89 100644
--- a/src/components/modals/CreateSessionModal.tsx
+++ b/src/components/modals/CreateSessionModal.tsx
@@ -23,7 +23,7 @@ export default function CreateSessionModal({ targetServerId }: Props) {
const [name, setName] = useState(null);
const [phone, setPhone] = useState(null);
const [email, setEmail] = useState(null);
- const [isSessionExists, setIsSessionExists] = useState(false);
+ // const [isSessionExists, setIsSessionExists] = useState(false);
const queryClient = useQueryClient();
@@ -113,70 +113,70 @@ export default function CreateSessionModal({ targetServerId }: Props) {
},
});
- const { mutate: endSession } = useMutation({
- mutationKey: ["sessions", 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,
- });
- },
- });
- return;
- }
-
- if (!isSessionExists) {
- setIsSessionExists(true);
- return;
- }
-
- endSession(undefined, {
- onError: (error) => {
- console.log("Ошибка при завершении сессии:", error);
+ // 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);
+ // },
+ // });
}
- 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,
+ // ]);
const ref = useRef(null);
@@ -257,8 +257,8 @@ export default function CreateSessionModal({ targetServerId }: Props) {
/>
)}
- {isSessionExists && (
-
+ {/* {isSessionExists && ( */}
+ {/*
-
- )}
+
*/}
+ {/* )} */}