This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
// SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0
|
||||
// Onboarding: the first organization, which creates its default workspace and project in one
|
||||
// transaction (kit-tenancy's use case), with the signed-in user as its owner. Joining an existing
|
||||
// organization is not done by name (spec §3.3): it is an invitation, which has its own page.
|
||||
|
||||
import { redirect } from "next/navigation"
|
||||
import type { ReactElement } from "react"
|
||||
import { signInHref } from "../../src/server/guard"
|
||||
import { pageContext } from "../../src/server/page"
|
||||
import { ProcedureForm } from "../../src/ui/procedure-form"
|
||||
|
||||
export const dynamic = "force-dynamic"
|
||||
|
||||
export default async function Onboarding(): Promise<ReactElement> {
|
||||
const { i18n, signedIn, path } = await pageContext()
|
||||
if (!signedIn) redirect(signInHref(path))
|
||||
return (
|
||||
<main>
|
||||
<h1>{i18n.message("app.createOrganization")}</h1>
|
||||
<ProcedureForm
|
||||
procedure="tenancy.org.create"
|
||||
submitLabel={i18n.message("app.create")}
|
||||
failedTemplate={i18n.message("app.failed")}
|
||||
after="/{slug}"
|
||||
fields={[
|
||||
{ name: "name", label: i18n.message("app.name"), required: true },
|
||||
{ name: "slug", label: i18n.message("app.slug"), required: true },
|
||||
]}
|
||||
/>
|
||||
</main>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user