// SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0 // The organization's workspaces and the projects of each (spec ยง3.1). import { projectList, workspaceList } from "@conusai-kit/tenancy" import type { ReactElement } from "react" import { orFallback } from "../../src/server/guard" import { pageContext } from "../../src/server/page" import { PROJECT_ENTRIES, projectHref } from "../../src/ui/projects" export const dynamic = "force-dynamic" export default async function OrgHome({ params }: { params: Promise<{ org: string }> }): Promise { const { org } = await params const { caller, i18n, path } = await pageContext() const projects = await orFallback(path, async () => { const { workspaces } = await caller.call(workspaceList, { org }) return Promise.all( workspaces.map(async (workspace) => ({ workspace, projects: (await caller.call(projectList, { org, workspace: workspace.slug })).projects, })), ) }) return ( <>

{i18n.message("app.workspaces")}

{i18n.message("workspace.create")}

{projects.length === 0 ?

{i18n.message("workspace.none")}

: null} {projects.map(({ workspace, projects: inWorkspace }) => (

{workspace.name}

{i18n.message("workspace.projectCount", { count: inWorkspace.length })}

))} ) }