diff --git a/apps/client/src/features/space/queries/space-query.ts b/apps/client/src/features/space/queries/space-query.ts new file mode 100644 index 0000000..55ab975 --- /dev/null +++ b/apps/client/src/features/space/queries/space-query.ts @@ -0,0 +1,10 @@ +import { useQuery, UseQueryResult } from "@tanstack/react-query"; +import { ISpace } from "@/features/space/types/space.types"; +import { getUserSpaces } from "@/features/space/services/space-service"; + +export function useUserSpacesQuery(): UseQueryResult { + return useQuery({ + queryKey: ["user-spaces"], + queryFn: () => getUserSpaces(), + }); +} diff --git a/apps/client/src/features/space/services/space-service.ts b/apps/client/src/features/space/services/space-service.ts new file mode 100644 index 0000000..5ce83e9 --- /dev/null +++ b/apps/client/src/features/space/services/space-service.ts @@ -0,0 +1,7 @@ +import api from '@/lib/api-client'; +import { ISpace } from '@/features/space/types/space.types'; + +export async function getUserSpaces(): Promise { + const req = await api.get('/spaces'); + return req.data as ISpace[]; +} diff --git a/apps/client/src/features/space/types/space.types.ts b/apps/client/src/features/space/types/space.types.ts new file mode 100644 index 0000000..5538ca2 --- /dev/null +++ b/apps/client/src/features/space/types/space.types.ts @@ -0,0 +1,11 @@ +export interface ISpace { + id: string; + name: string; + description: string; + icon: string; + hostname: string; + creatorId: string; + createdAt: Date; + updatedAt: Date; +} +