// react import React, { useEffect, useState } from "react"; // next import { useRouter } from "next/router"; // hooks import useUser from "lib/hooks/useUser"; // layouts import Container from "layouts/container"; import Sidebar from "layouts/navbar/main-siderbar"; import SettingsSidebar from "layouts/navbar/settings-sidebar"; import Header from "layouts/navbar/header"; // components import CreateProjectModal from "components/project/create-project-modal"; // types import { Meta } from "./types"; type Props = { meta?: Meta; children: React.ReactNode; noPadding?: boolean; bg?: "primary" | "secondary"; noHeader?: boolean; breadcrumbs?: JSX.Element; left?: JSX.Element; right?: JSX.Element; type: "workspace" | "project"; }; const SettingsLayout: React.FC = ({ meta, children, noPadding = false, bg = "primary", noHeader = false, breadcrumbs, left, right, type, }) => { const [isOpen, setIsOpen] = useState(false); const router = useRouter(); const { activeWorkspace, activeProject, user, isUserLoading } = useUser(); useEffect(() => { if (!isUserLoading && (!user || user === null)) router.push("/signin"); }, [isUserLoading, user, router]); const workspaceLinks: { label: string; href: string; }[] = [ { label: "General", href: "#", }, { label: "Control", href: "#", }, { label: "States", href: "#", }, { label: "Labels", href: "#", }, ]; const sidebarLinks: { label: string; href: string; }[] = [ { label: "General", href: `/projects/${activeProject?.id}/settings`, }, { label: "Control", href: `/projects/${activeProject?.id}/settings/control`, }, { label: "Members", href: `/projects/${activeProject?.id}/settings/members`, }, { label: "States", href: `/projects/${activeProject?.id}/settings/states`, }, { label: "Labels", href: `/projects/${activeProject?.id}/settings/labels`, }, ]; return (
{noHeader ? null :
}
{children}
); }; export default SettingsLayout;