"use client"; import { useState } from "react"; import { observer } from "mobx-react"; import Image from "next/image"; import Link from "next/link"; import { useTheme } from "next-themes"; import { useTranslation } from "@plane/i18n"; import { IWorkspace } from "@plane/types"; // components import { Button, getButtonStyling } from "@plane/ui"; import { CreateWorkspaceForm } from "@/components/workspace"; // hooks import { useUser, useUserProfile } from "@/hooks/store"; import { useAppRouter } from "@/hooks/use-app-router"; // wrappers import { AuthenticationWrapper } from "@/lib/wrappers"; // plane web helpers import { getIsWorkspaceCreationDisabled } from "@/plane-web/helpers/instance.helper"; // images import BlackHorizontalLogo from "@/public/plane-logos/black-horizontal-with-blue-logo.png"; import WhiteHorizontalLogo from "@/public/plane-logos/white-horizontal-with-blue-logo.png"; import WorkspaceCreationDisabled from "@/public/workspace/workspace-creation-disabled.png"; const CreateWorkspacePage = observer(() => { const { t } = useTranslation(); // router const router = useAppRouter(); // store hooks const { data: currentUser } = useUser(); const { updateUserProfile } = useUserProfile(); // states const [defaultValues, setDefaultValues] = useState({ name: "", slug: "", organization_size: "", }); // hooks const { resolvedTheme } = useTheme(); // derived values const isWorkspaceCreationDisabled = getIsWorkspaceCreationDisabled(); // methods const getMailtoHref = () => { const subject = t("workspace_creation.request_email.subject"); const body = t("workspace_creation.request_email.body", { firstName: currentUser?.first_name || "", lastName: currentUser?.last_name || "", email: currentUser?.email || "", }); return `mailto:?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`; }; const onSubmit = async (workspace: IWorkspace) => { await updateUserProfile({ last_workspace_id: workspace.id }).then(() => router.push(`/${workspace.slug}`)); }; const logo = resolvedTheme === "light" ? BlackHorizontalLogo : WhiteHorizontalLogo; return (
Plane logo
{currentUser?.email}
{isWorkspaceCreationDisabled ? (
Workspace creation disabled
{t("workspace_creation.errors.creation_disabled.title")}

{t("workspace_creation.errors.creation_disabled.description")}

) : (

{t("workspace_creation.heading")}

)}
); }); export default CreateWorkspacePage;