feat: implement EndSessionModal for session termination and update CurrentSessionModal to utilize it
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
import FlashIcon from "./icons/FlashIcon";
|
||||
import { ISession } from "../types/ISession";
|
||||
import NewButton from "./NewButton";
|
||||
import api from "../utils/api";
|
||||
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
||||
import ChevronRightIcon from "./icons/ChevronRightIcon";
|
||||
import { motion } from "motion/react";
|
||||
import CurrentSessionModal from "./modals/CurrentSessionModal";
|
||||
import useModalStore from "../stores/useModalStore";
|
||||
import EndSessionModal from "./modals/EndSessionModal";
|
||||
|
||||
function CurrentSessionCard({
|
||||
session,
|
||||
@@ -17,21 +16,21 @@ function CurrentSessionCard({
|
||||
}) {
|
||||
const { setModal } = useModalStore();
|
||||
|
||||
const queryClient = useQueryClient();
|
||||
// const queryClient = useQueryClient();
|
||||
|
||||
const { mutate: endSession, isPending } = useMutation({
|
||||
mutationKey: ["sessions", session.id],
|
||||
mutationFn: () =>
|
||||
api.put(`sessions/${session.id}`, { json: { status: "ending" } }),
|
||||
onMutate: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ["sessions"] });
|
||||
queryClient.invalidateQueries({ queryKey: ["last-started"] });
|
||||
queryClient.invalidateQueries({ queryKey: ["servers"] });
|
||||
},
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ["last-sessions"] });
|
||||
},
|
||||
});
|
||||
// const { mutate: endSession, isPending } = useMutation({
|
||||
// mutationKey: ["sessions", session.id],
|
||||
// mutationFn: () =>
|
||||
// api.put(`sessions/${session.id}`, { json: { status: "ending" } }),
|
||||
// onMutate: () => {
|
||||
// queryClient.invalidateQueries({ queryKey: ["sessions"] });
|
||||
// queryClient.invalidateQueries({ queryKey: ["last-started"] });
|
||||
// queryClient.invalidateQueries({ queryKey: ["servers"] });
|
||||
// },
|
||||
// onSuccess: () => {
|
||||
// queryClient.invalidateQueries({ queryKey: ["last-sessions"] });
|
||||
// },
|
||||
// });
|
||||
|
||||
return (
|
||||
<motion.div
|
||||
@@ -74,8 +73,7 @@ function CurrentSessionCard({
|
||||
</div>
|
||||
<NewButton
|
||||
variant="critical"
|
||||
onClick={() => endSession()}
|
||||
disabled={isPending}
|
||||
onClick={() => setModal(<EndSessionModal session={session} />)}
|
||||
>
|
||||
Завершить сеанс
|
||||
</NewButton>
|
||||
|
||||
Reference in New Issue
Block a user