"use client"; import Link from "next/link"; import { Button } from "@/components/ui/button"; import { WorkspaceSidebarTrigger } from "@/components/workspace/workspace-sidebar-trigger"; import { useFrontendExtensions } from "@/core/extensions/hooks"; import { pluginPages, pluginPageTitle } from "@/core/extensions/pages"; import { useI18n } from "@/core/i18n/hooks"; import { PluginSurfaces } from "./plugin-surfaces"; export function PluginPage({ namespace, surfaceId, }: { namespace: string; surfaceId: string; }) { const query = useFrontendExtensions(); const { locale, t } = useI18n(); const page = pluginPages(query.data ?? []).find( ({ contribution, surface }) => contribution.namespace === namespace && surface.id === surfaceId, ); const title = page ? pluginPageTitle(page.surface, locale) : t.extensions.pageUnavailable; return (
{t.breadcrumb.workspace} / {title}
{query.isPending ? (

{t.extensions.pageLoading}

) : ( <>

{title}

{page ? ( ) : (

{t.extensions.pageUnavailableHint}

)} )}
); }