diff --git a/apps/client/src/features/group/components/group-list.tsx b/apps/client/src/features/group/components/group-list.tsx
index d9f2e9fa..d88e1ec0 100644
--- a/apps/client/src/features/group/components/group-list.tsx
+++ b/apps/client/src/features/group/components/group-list.tsx
@@ -1,7 +1,6 @@
import { Table, Group, Text, Anchor } from "@mantine/core";
import { useGetGroupsQuery } from "@/features/group/queries/group-query";
import { Link } from "react-router-dom";
-import { useCursorPaginate } from "@/hooks/use-cursor-paginate";
import { IconGroupCircle } from "@/components/icons/icon-people-circle.tsx";
import { useTranslation } from "react-i18next";
import { formatMemberCount } from "@/lib";
@@ -10,11 +9,14 @@ import Paginate from "@/components/common/paginate.tsx";
import { queryClient } from "@/main.tsx";
import { getGroupMembers } from "@/features/group/services/group-service.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 GroupList() {
const { t } = useTranslation();
- const { cursor, goNext, goPrev } = useCursorPaginate();
- const { data, isLoading } = useGetGroupsQuery({ cursor });
+ const { search, cursor, goNext, goPrev, handleSearch } = usePaginateAndSearch();
+ const { data, isLoading } = useGetGroupsQuery({ cursor, query: search });
const prefetchGroupMembers = (groupId: string) => {
queryClient.prefetchQuery({
@@ -25,6 +27,7 @@ export default function GroupList() {
return (
<>
+
@@ -35,7 +38,8 @@ export default function GroupList() {
- {data?.items.map((group: IGroup, index: number) => (
+ {data?.items.length > 0 ? (
+ data?.items.map((group: IGroup, index: number) => (
prefetchGroupMembers(group.id)}>
- ))}
+ ))
+ ) : (
+
+ )}
diff --git a/apps/client/src/features/space/components/space-list.tsx b/apps/client/src/features/space/components/space-list.tsx
index 96a0d74b..21327e30 100644
--- a/apps/client/src/features/space/components/space-list.tsx
+++ b/apps/client/src/features/space/components/space-list.tsx
@@ -1,6 +1,5 @@
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";
@@ -10,11 +9,14 @@ 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 { cursor, goNext, goPrev } = useCursorPaginate();
- const { data, isLoading } = useGetSpacesQuery({ cursor });
+ 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);
@@ -25,6 +27,7 @@ export default function SpaceList() {
return (
<>
+
@@ -35,7 +38,8 @@ export default function SpaceList() {
- {data?.items.map((space, index) => (
+ {data?.items.length > 0 ? (
+ data?.items.map((space, index) => (
- ))}
+ ))
+ ) : (
+
+ )}