import { Group, Table, Text } from "@mantine/core"; import React, { useState } from "react"; import { useCursorPaginate } from "@/hooks/use-cursor-paginate"; import { useGetSpacesQuery } from "@/features/space/queries/space-query.ts"; import SpaceSettingsModal from "@/features/space/components/settings-modal.tsx"; import { useDisclosure } from "@mantine/hooks"; import { formatMemberCount } from "@/lib"; import { useTranslation } from "react-i18next"; import Paginate from "@/components/common/paginate.tsx"; import { CustomAvatar } from "@/components/ui/custom-avatar.tsx"; import { AvatarIconType } from "@/features/attachments/types/attachment.types.ts"; import { AutoTooltipText } from "@/components/ui/auto-tooltip-text.tsx"; export default function SpaceList() { const { t } = useTranslation(); const { cursor, goNext, goPrev } = useCursorPaginate(); const { data, isLoading } = useGetSpacesQuery({ cursor }); const [opened, { open, close }] = useDisclosure(false); const [selectedSpaceId, setSelectedSpaceId] = useState(null); const handleClick = (spaceId: string) => { setSelectedSpaceId(spaceId); open(); }; return ( <> {t("Space")} {t("Members")} {data?.items.map((space, index) => ( handleClick(space.id)} >
{space.name} {space.description}
{formatMemberCount(space.memberCount, t)}
))}
{data?.items.length > 0 && ( goNext(data?.meta?.nextCursor)} onPrev={goPrev} /> )} {selectedSpaceId && ( )} ); }