UNPKG

@replyke/core

Version:

Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.

43 lines 1.74 kB
import { useCallback } from "react"; import useProject from "../projects/useProject"; import useAxiosPrivate from "../../config/useAxiosPrivate"; function useFetchManySpaces() { const { projectId } = useProject(); const axios = useAxiosPrivate(); const fetchManySpaces = useCallback(async (params) => { if (!projectId) { throw new Error("No projectId available."); } const queryParams = {}; if (params?.page !== undefined) queryParams.page = params.page; if (params?.limit !== undefined) queryParams.limit = params.limit; if (params?.sortBy) queryParams.sortBy = params.sortBy; if (params?.searchSlug) queryParams.searchSlug = params.searchSlug; if (params?.searchName) queryParams.searchName = params.searchName; if (params?.searchDescription) queryParams.searchDescription = params.searchDescription; if (params?.searchAny) queryParams.searchAny = params.searchAny; if (params?.memberOf !== undefined) queryParams.memberOf = params.memberOf; if (params?.parentSpaceId !== undefined) queryParams.parentSpaceId = params.parentSpaceId || "null"; if (params?.include) { queryParams.include = Array.isArray(params.include) ? params.include.join(",") : params.include; } const response = await axios.get(`/${projectId}/spaces`, { params: queryParams, }); return response.data; }, [projectId, axios]); return fetchManySpaces; } export default useFetchManySpaces; //# sourceMappingURL=useFetchManySpaces.js.map