From 255fb693a9e89f009ab1722f85e199a63b55173c Mon Sep 17 00:00:00 2001 From: Runjuu Date: Wed, 11 Jan 2023 20:36:07 -0800 Subject: [PATCH] feat(SettingsLayout): hide `Operators` page if is email account --- src/components/dashboard/SettingsLayout.tsx | 6 ++++++ src/components/ui/Tabs.tsx | 3 +++ 2 files changed, 9 insertions(+) diff --git a/src/components/dashboard/SettingsLayout.tsx b/src/components/dashboard/SettingsLayout.tsx index 8b0bf24f..6a2cf66c 100644 --- a/src/components/dashboard/SettingsLayout.tsx +++ b/src/components/dashboard/SettingsLayout.tsx @@ -1,5 +1,7 @@ import { useRouter } from "next/router" import React from "react" +import { useAccountState } from "@crossbell/connect-kit" + import { type TabItem, Tabs } from "../ui/Tabs" import { DashboardMain } from "./DashboardMain" @@ -9,6 +11,9 @@ export const SettingsLayout: React.FC<{ type: "site" | "account" }> = ({ title, children, type }) => { const router = useRouter() + const isEmailAccount = useAccountState( + (s) => s.computed.account?.type === "email", + ) const subdomain = router.query.subdomain as string const tabItems: TabItem[] = ( @@ -23,6 +28,7 @@ export const SettingsLayout: React.FC<{ { text: "Custom CSS", href: `/dashboard/${subdomain}/settings/css` }, { text: "Operators", + hidden: isEmailAccount, href: `/dashboard/${subdomain}/settings/operator`, }, { diff --git a/src/components/ui/Tabs.tsx b/src/components/ui/Tabs.tsx index 1915d974..105f39e8 100644 --- a/src/components/ui/Tabs.tsx +++ b/src/components/ui/Tabs.tsx @@ -5,6 +5,7 @@ import { UniLink } from "./UniLink" export type TabItem = { text: string href?: string + hidden?: boolean onClick?: () => void active?: boolean } @@ -13,6 +14,8 @@ export const Tabs: React.FC<{ items: TabItem[] }> = ({ items }) => { return (
{items.map((item) => { + if (item.hidden) return null + return (