import { useEffect } from "react"; import Router from "next/router"; // services import userService from "services/user.service"; import workspaceService from "services/workspace.service"; // ui import { Spinner } from "components/ui"; // types import type { NextPage } from "next"; const redirectUserTo = async () => { const user = await userService .currentUser() .then((res) => res) .catch(() => { Router.push("/signin"); return; }); if (!user) { Router.push("/signin"); return; } else if (!user.user.is_onboarded) { Router.push("/onboarding"); return; } else { const userWorkspaces = await workspaceService.userWorkspaces(); const lastActiveWorkspace = userWorkspaces.find( (workspace) => workspace.id === user.user.last_workspace_id ); if (lastActiveWorkspace) { Router.push(`/${lastActiveWorkspace.slug}`); return; } else if (userWorkspaces.length > 0) { Router.push(`/${userWorkspaces[0].slug}`); return; } else { const invitations = await workspaceService.userWorkspaceInvitations(); if (invitations.length > 0) { Router.push(`/invitations`); return; } else { Router.push(`/create-workspace`); return; } } } }; const Home: NextPage = () => { useEffect(() => { redirectUserTo(); }, []); return (
); }; export default Home;