From 0adec22aaacb6a58267dfc5e861d791e5cd6b510 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 11 Mar 2024 18:43:33 +0000 Subject: [PATCH] Adds Workspace Collection Context interface and token --- .../core/workspace/workspace-context/index.ts | 2 ++ .../workspace-collection-context.interface.ts | 10 ++++++++++ .../workspace-collection-context.token.ts | 16 ++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.interface.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts index f467da08d3..269d85792a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/index.ts @@ -1,6 +1,8 @@ export * from './property-structure-workspace-context.interface.js'; export * from './publishable-workspace-context.interface.js'; export * from './saveable-workspace-context.interface.js'; +export * from './workspace-collection-context.interface.js'; +export * from './workspace-collection-context.token.js'; export * from './variant-workspace-context.token.js'; export * from './workspace-context.interface.js'; export * from './editable-workspace-context-base.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.interface.ts new file mode 100644 index 0000000000..aaadac60de --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.interface.ts @@ -0,0 +1,10 @@ +import type { UmbWorkspaceContextInterface } from './workspace-context.interface.js'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { UmbContentTypeModel, UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; + +export interface UmbWorkspaceCollectionContextInterface + extends UmbWorkspaceContextInterface { + contentTypeHasCollection: Observable; + getCollectionAlias(): string; + structure: UmbContentTypePropertyStructureManager; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.token.ts new file mode 100644 index 0000000000..4cc4ba1460 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-collection-context.token.ts @@ -0,0 +1,16 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; +import type { + UmbWorkspaceContextInterface, + UmbWorkspaceCollectionContextInterface, +} from '@umbraco-cms/backoffice/workspace'; + +export const UMB_WORKSPACE_COLLECTION_CONTEXT = new UmbContextToken< + UmbWorkspaceContextInterface, + UmbWorkspaceCollectionContextInterface +>( + 'UmbWorkspaceContext', + undefined, + (context): context is UmbWorkspaceCollectionContextInterface => + (context as UmbWorkspaceCollectionContextInterface).contentTypeHasCollection !== undefined, +);