plane/app/hooks/use-workspaces.tsx

32 lines
764 B
TypeScript
Raw Normal View History

2023-04-21 23:30:36 +00:00
import useSWR from "swr";
import { useRouter } from "next/router";
// types
import { IWorkspace } from "types";
// services
import workspaceService from "services/workspace.service";
// constants
import { USER_WORKSPACES } from "constants/fetch-keys";
const useWorkspaces = () => {
// router
const router = useRouter();
const { workspaceSlug } = router.query;
// API to fetch user information
const {
data = [],
error,
mutate,
} = useSWR<IWorkspace[]>(USER_WORKSPACES, () => workspaceService.userWorkspaces());
// active workspace
const activeWorkspace = data?.find((w) => w.slug === workspaceSlug);
return {
workspaces: data,
error,
activeWorkspace,
mutateWorkspaces: mutate,
};
};
export default useWorkspaces;