feat(admin-auth): add first-start onboarding flow and dev db reset command
This commit is contained in:
34
apps/admin/src/app/welcome/page.tsx
Normal file
34
apps/admin/src/app/welcome/page.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
import { redirect } from "next/navigation"
|
||||
import { LoginForm } from "@/app/login/login-form"
|
||||
import { resolveRoleFromServerContext } from "@/lib/access-server"
|
||||
import { hasOwnerUser } from "@/lib/auth/server"
|
||||
|
||||
export const dynamic = "force-dynamic"
|
||||
|
||||
type SearchParams = Promise<Record<string, string | string[] | undefined>>
|
||||
|
||||
function getSingleValue(input: string | string[] | undefined): string | undefined {
|
||||
if (Array.isArray(input)) {
|
||||
return input[0]
|
||||
}
|
||||
|
||||
return input
|
||||
}
|
||||
|
||||
export default async function WelcomePage({ searchParams }: { searchParams: SearchParams }) {
|
||||
const params = await searchParams
|
||||
const nextPath = getSingleValue(params.next) ?? "/"
|
||||
const role = await resolveRoleFromServerContext()
|
||||
|
||||
if (role) {
|
||||
redirect("/")
|
||||
}
|
||||
|
||||
const hasOwner = await hasOwnerUser()
|
||||
|
||||
if (hasOwner) {
|
||||
redirect(`/login?next=${encodeURIComponent(nextPath)}`)
|
||||
}
|
||||
|
||||
return <LoginForm mode="signup-owner" />
|
||||
}
|
||||
Reference in New Issue
Block a user