import { useRouter } from "next/router"; import { t } from "@lingui/core/macro"; import { env } from "next-runtime-env"; import { useEffect, useState } from "react"; import { HiBolt } from "react-icons/hi2"; import type { Subscription } from "@kan/shared/utils"; import { hasActiveSubscription } from "@kan/shared/utils"; import Button from "~/components/Button"; import FeedbackModal from "~/components/FeedbackModal"; import Modal from "~/components/modal"; import { NewWorkspaceForm } from "~/components/NewWorkspaceForm"; import { PageHead } from "~/components/PageHead"; import { useModal } from "~/providers/modal"; import { useWorkspace } from "~/providers/workspace"; import { api } from "~/utils/api"; import { DeleteWorkspaceConfirmation } from "./components/DeleteWorkspaceConfirmation"; import UpdateWorkspaceDescriptionForm from "./components/UpdateWorkspaceDescriptionForm"; import UpdateWorkspaceNameForm from "./components/UpdateWorkspaceNameForm"; import UpdateWorkspaceUrlForm from "./components/UpdateWorkspaceUrlForm"; import { UpgradeToProConfirmation } from "./components/UpgradeToProConfirmation"; export default function WorkspaceSettings() { const { modalContentType, openModal, isOpen } = useModal(); const { workspace } = useWorkspace(); const router = useRouter(); const { data } = api.user.getUser.useQuery(); const [hasOpenedUpgradeModal, setHasOpenedUpgradeModal] = useState(false); const { data: workspaceData } = api.workspace.byId.useQuery({ workspacePublicId: workspace.publicId, }); const subscriptions = workspaceData?.subscriptions as | Subscription[] | undefined; // Open upgrade modal if upgrade=pro is in URL params useEffect(() => { if ( router.query.upgrade === "pro" && env("NEXT_PUBLIC_KAN_ENV") === "cloud" && !hasActiveSubscription(subscriptions, "pro") && !hasOpenedUpgradeModal ) { openModal("UPGRADE_TO_PRO"); setHasOpenedUpgradeModal(true); } }, [router.query.upgrade, subscriptions, openModal, hasOpenedUpgradeModal]); return ( <>

{t`Workspace name`}

{t`Workspace URL`}

{t`Workspace description`}

{env("NEXT_PUBLIC_KAN_ENV") === "cloud" && !hasActiveSubscription(subscriptions, "pro") && !hasActiveSubscription(subscriptions, "team") && (
)}

{t`Delete workspace`}

{t`Once you delete your workspace, there is no going back. This action cannot be undone.`}

{/* Workspace-specific modals */} {/* Global modals */} ); }