import { intervalToDuration } from "date-fns"; import FlashIcon from "../icons/FlashIcon"; import Button from "../Button"; import useModalStore from "../../stores/useModalStore"; import { Session } from "../../types/Session"; import { useEffect, useState } from "react"; import EndSessionModal from "./EndSessionModal"; import ClientCard from "../ClientCard"; import { useQuery } from "@tanstack/react-query"; import api from "../../utils/api"; import { Client } from "../../types/Client"; function CurrentSessionModal({ session }: { session: Session }) { const { setModal } = useModalStore(); const [now, setNow] = useState(Date.now()); useEffect(() => { const interval = setInterval(() => { setNow(Date.now()); }, 1000); return () => clearInterval(interval); }, []); const { data: client } = useQuery({ queryKey: ["client", session.clientId], queryFn: () => api.get(`clients/${session.clientId}`).json(), }); if (!session) return null; return (

Текущий сеанс

{session.server.name}

Сеанс идёт{" "} {(() => { const duration = intervalToDuration({ start: session.createdAt, end: now, }); const hours = (duration.hours || 0) .toString() .padStart(2, "0"); const minutes = (duration.minutes || 0) .toString() .padStart(2, "0"); const seconds = (duration.seconds || 0) .toString() .padStart(2, "0"); return `${hours}:${minutes}:${seconds}`; })()}

{session.server.description}

Параметры сеанса

{client && }

Детали

Менеджер:

{session.manager.fullname}

Сценарии проживания:

Добавить в бэкенд

); } export default CurrentSessionModal;