"use client"; import { FC, ReactNode } from "react"; import { observer } from "mobx-react"; // components import { useParams, usePathname } from "next/navigation"; import { EUserWorkspaceRoles, WORKSPACE_SETTINGS_ACCESS } from "@plane/constants"; import { NotAuthorizedView } from "@/components/auth-screens"; import { AppHeader } from "@/components/core"; // hooks import { useUserPermissions } from "@/hooks/store"; // plane web constants // local components import { WorkspaceSettingHeader } from "../header"; import { MobileWorkspaceSettingsTabs } from "./mobile-header-tabs"; import { WorkspaceSettingsSidebar } from "./sidebar"; export interface IWorkspaceSettingLayout { children: ReactNode; } const WorkspaceSettingLayout: FC = observer((props) => { const { children } = props; const { workspaceUserInfo } = useUserPermissions(); const pathname = usePathname(); const { workspaceSlug } = useParams(); // derived values const userWorkspaceRole = workspaceUserInfo?.[workspaceSlug.toString()]?.role; const isAuthorized = pathname && workspaceSlug && userWorkspaceRole && WORKSPACE_SETTINGS_ACCESS[pathname.replace(`/${workspaceSlug}`, "").slice(0, -1)]?.includes( userWorkspaceRole as EUserWorkspaceRoles ); return ( <> } />
{workspaceUserInfo && !isAuthorized ? ( ) : ( <>
{children}
)}
); }); export default WorkspaceSettingLayout;