import { Group, Table, Text } from "@mantine/core"; import React, { useState } from "react"; 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"; import { SearchInput } from "@/components/common/search-input.tsx"; import NoTableResults from "@/components/common/no-table-results.tsx"; import { usePaginateAndSearch } from "@/hooks/use-paginate-and-search.tsx"; export default function SpaceList() { const { t } = useTranslation(); const { search, cursor, goNext, goPrev, handleSearch } = usePaginateAndSearch(); const { data, isLoading } = useGetSpacesQuery({ cursor, query: search }); 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.length > 0 ? ( 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 && ( )} ); }