Filter organization surfaces by View

This commit is contained in:
2026-07-28 21:04:54 +02:00
parent 28f799e426
commit 35aebe8759
3 changed files with 29 additions and 1 deletions

View File

@@ -18,8 +18,11 @@ import {
TableActionGroup,
ToggleSwitch,
hasScope,
isViewSurfaceVisible,
useEffectiveView,
useUnsavedDraftGuard,
usePlatformUiCapabilities,
useViewSurfaces,
type ApiSettings,
type AuthInfo,
type DataGridColumn,
@@ -378,6 +381,8 @@ export default function OrganizationsPage({
const [selectedUnitId, setSelectedUnitId] = useState("");
const [changeRequestId, setChangeRequestId] = useState("");
const functionActionCapabilities = usePlatformUiCapabilities<OrganizationFunctionActionsUiCapability>("organizations.functionActions");
const effectiveView = useEffectiveView();
const viewSurfaces = useViewSurfaces();
const canWriteModel = hasScope(auth, "organizations:model:write");
const canWriteUnits = hasScope(auth, "organizations:unit:write");
@@ -393,8 +398,11 @@ export default function OrganizationsPage({
() => functionActionCapabilities
.flatMap((capability) => capability.actions)
.filter((contribution) => contributionVisible(auth, contribution))
.filter((contribution) =>
isViewSurfaceVisible(effectiveView, contribution.surfaceId, viewSurfaces)
)
.sort((left, right) => (left.order ?? 100) - (right.order ?? 100)),
[auth, functionActionCapabilities]
[auth, effectiveView, functionActionCapabilities, viewSurfaces]
);
const unitsByParentId = useMemo(() => {
const mapped = new Map<string, OrganizationUnitItem[]>();