import { useState } from "react"; import { Button, Divider, Group, Skeleton, Stack, Table, Text, } from "@mantine/core"; import { IconDevices } from "@tabler/icons-react"; import { useTranslation } from "react-i18next"; import { useGetSessionsQuery, useRevokeSessionMutation, useRevokeAllSessionsMutation, } from "@/features/session/queries/session-query"; import { formattedDate } from "@/lib/time"; const PAGE_SIZE = 5; export default function SessionList() { const { t } = useTranslation(); const { data: sessions, isLoading } = useGetSessionsQuery(); const revokeSessionMutation = useRevokeSessionMutation(); const revokeAllSessionsMutation = useRevokeAllSessionsMutation(); const [visibleCount, setVisibleCount] = useState(PAGE_SIZE); const otherSessions = sessions?.filter((s) => !s?.isCurrentDevice) ?? []; const visibleSessions = sessions?.slice(0, visibleCount) ?? []; const hasMore = sessions && visibleCount < sessions.length; if (isLoading) { return (