From 62b561e22bdd16406938cd3e80dbd113da3e6224 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 16 Jan 2023 20:27:44 +0000 Subject: [PATCH] feat: disabling and upgrade tip of subdomain and operator of newbie --- src/components/dashboard/SettingsLayout.tsx | 5 -- .../[subdomain]/settings/domains.tsx | 32 ++++++++++++ .../[subdomain]/settings/operator.tsx | 51 ++++++++++++++++--- 3 files changed, 77 insertions(+), 11 deletions(-) diff --git a/src/components/dashboard/SettingsLayout.tsx b/src/components/dashboard/SettingsLayout.tsx index 6a2cf66c..470c20d3 100644 --- a/src/components/dashboard/SettingsLayout.tsx +++ b/src/components/dashboard/SettingsLayout.tsx @@ -1,6 +1,5 @@ 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" @@ -11,9 +10,6 @@ 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[] = ( @@ -28,7 +24,6 @@ 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/pages/dashboard/[subdomain]/settings/domains.tsx b/src/pages/dashboard/[subdomain]/settings/domains.tsx index b683c889..68d0decf 100644 --- a/src/pages/dashboard/[subdomain]/settings/domains.tsx +++ b/src/pages/dashboard/[subdomain]/settings/domains.tsx @@ -8,6 +8,9 @@ import { Button } from "~/components/ui/Button" import { Input } from "~/components/ui/Input" import { OUR_DOMAIN, APP_NAME } from "~/lib/env" import { useGetSite, useUpdateSite } from "~/queries/site" +import { useAccountState, useUpgradeAccountModal } from "@crossbell/connect-kit" +import { UniLink } from "~/components/ui/UniLink" +import { getSiteLink } from "~/lib/helpers" export default function SettingsDomainsPage() { const router = useRouter() @@ -16,6 +19,11 @@ export default function SettingsDomainsPage() { const updateSite = useUpdateSite() const site = useGetSite(subdomain) + const isEmailAccount = useAccountState( + (s) => s.computed.account?.type === "email", + ) + const upgradeAccountModal = useUpgradeAccountModal() + const form = useForm({ defaultValues: { subdomain: "", @@ -76,7 +84,31 @@ export default function SettingsDomainsPage() { addon={`.${OUR_DOMAIN}`} className="w-28" {...form.register("subdomain")} + disabled={isEmailAccount} /> + {isEmailAccount && ( +
+ Email users cannot change subdomain/handle.{" "} + + Learn more + {" "} + or{" "} + + upgrade account + + . +
+ )}
void @@ -20,7 +23,8 @@ const SortableNavigationItem: React.FC<{ item: string removeItem: RemoveItem isLoading: boolean -}> = ({ item, removeItem, isLoading }) => { + disabled?: boolean +}> = ({ item, removeItem, isLoading, disabled }) => { return (
@@ -38,6 +42,7 @@ const SortableNavigationItem: React.FC<{ onClick={() => removeItem(item)} variantColor="red" isLoading={isLoading} + isDisabled={disabled} > Remove @@ -57,6 +62,10 @@ export default function SiteSettingsNavigationPage() { const operators = useGetOperators({ characterId: +(site.data?.metadata?.proof || 0), }) + const isEmailAccount = useAccountState( + (s) => s.computed.account?.type === "email", + ) + const upgradeAccountModal = useUpgradeAccountModal() const [items, setItems] = useState([]) @@ -152,16 +161,43 @@ export default function SiteSettingsNavigationPage() {
-
+

⚠️ Warning:

- Operators have permissions to enter your dashboard, change your - settings(excluding xLog subdomain) and post contents on your site. + {isEmailAccount ? ( + + Email users cannot set operators.{" "} + + Learn more + {" "} + or{" "} + + upgrade account + + . + + ) : ( + + Operators have permissions to enter your dashboard, change + your settings(excluding xLog subdomain) and post contents on + your site. + + )}

-
+
{items.length === 0 && (
@@ -175,6 +211,7 @@ export default function SiteSettingsNavigationPage() { item={item} removeItem={removeItem} isLoading={removeOperator.isLoading} + disabled={isEmailAccount} /> ) })} @@ -185,7 +222,9 @@ export default function SiteSettingsNavigationPage() { `}
- +