{t.extensions.pageLoading}
) : ( <>{title}
{page ? ({t.extensions.pageUnavailableHint}
"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.extensions.pageLoading}
) : ( <>{t.extensions.pageUnavailableHint}