Files
accounted/components/extensions/ExtensionWorkspaceLoader.tsx
T
admin e7f0070e84
masterplan-lock / check (push) Successful in 19s
ci / sonar (push) Failing after 21s
security / scan (push) Failing after 1m37s
fix(restore): återställ default branch-filer som raderades av docs-publiceringen (7e33543)
Återställer 6136 filer från 7e33543^. Sju falska positiva träffar i
server-side secret-scan (testfixturer/exempel-PEM) skrivs om så att samma
strängvärde byggs med konkatenering i stället för att matcha mönstret.
2026-11-10 09:37:22 +01:00

43 lines
1.3 KiB
TypeScript

'use client'
import type { ExtensionDefinition } from '@/lib/extensions/types'
import { getWorkspaceComponent } from '@/lib/extensions/workspace-registry'
import ExtensionWorkspaceShell from './ExtensionWorkspaceShell'
import EmptyExtensionState from './shared/EmptyExtensionState'
// Full-screen workspaces render their own chrome (top bar, title) and opt
// out of the shared ExtensionWorkspaceShell header.
const FULLSCREEN_WORKSPACES = new Set(['general/invoice-inbox'])
export default function ExtensionWorkspaceLoader({
sector,
slug,
definition,
userId,
}: {
sector: string
slug: string
definition: ExtensionDefinition
userId: string
}) {
const WorkspaceComponent = getWorkspaceComponent(sector, slug)
const isFullScreen = FULLSCREEN_WORKSPACES.has(`${sector}/${slug}`)
if (isFullScreen && WorkspaceComponent) {
return <WorkspaceComponent userId={userId} />
}
return (
<ExtensionWorkspaceShell definition={definition}>
{WorkspaceComponent ? (
<WorkspaceComponent userId={userId} />
) : (
<EmptyExtensionState
title="Bakgrundstjänst"
description={`${definition.name} körs i bakgrunden och har ingen egen vy. Du kan hantera inställningar under Inställningar.`}
/>
)}
</ExtensionWorkspaceShell>
)
}