Feat: Content Property Datatset Context Token (#17723)

* introduce UMB_CONTENT_PROPERTY_DATASET_CONTEXT

* Updating List and RTE
This commit is contained in:
Niels Lyngsø
2024-12-05 10:17:52 +01:00
committed by GitHub
parent 79ce50bce8
commit 7440b9d83d
6 changed files with 22 additions and 6 deletions

View File

@@ -19,7 +19,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router';
import { pathFolderName } from '@umbraco-cms/backoffice/utils';
import type { UmbNumberRangeValueType } from '@umbraco-cms/backoffice/models';
import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property';
import { UMB_CONTENT_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/content';
interface UmbBlockGridAreaTypeInvalidRuleType {
groupKey?: string;
@@ -222,7 +222,7 @@ export class UmbBlockGridEntriesContext
this._workspacePath.setValue(newPath);
});
this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, (dataset) => {
this.consumeContext(UMB_CONTENT_PROPERTY_DATASET_CONTEXT, (dataset) => {
const variantId = dataset.getVariantId();
this.#catalogueModal.setUniquePathValue('variantId', variantId?.toString());
this.#workspaceModal.setUniquePathValue('variantId', variantId?.toString());

View File

@@ -7,7 +7,7 @@ import { UMB_BLOCK_LIST_MANAGER_CONTEXT } from './block-list-manager.context-tok
import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router';
import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property';
import { UMB_CONTENT_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/content';
export class UmbBlockListEntriesContext extends UmbBlockEntriesContext<
typeof UMB_BLOCK_LIST_MANAGER_CONTEXT,
@@ -83,7 +83,8 @@ export class UmbBlockListEntriesContext extends UmbBlockEntriesContext<
this._workspacePath.setValue(newPath);
});
this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, (dataset) => {
// TODO: This must later be switched out with a smarter Modal Registration System, cause here is a issue with Block Editors in inline mode in Block Editors, cause the hosting Block is also of type Content. [NL]
this.consumeContext(UMB_CONTENT_PROPERTY_DATASET_CONTEXT, (dataset) => {
const variantId = dataset.getVariantId();
this.#catalogueModal.setUniquePathValue('variantId', variantId?.toString());
this.#workspaceModal.setUniquePathValue('variantId', variantId?.toString());

View File

@@ -9,7 +9,7 @@ import { UMB_BLOCK_RTE_MANAGER_CONTEXT } from './block-rte-manager.context-token
import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router';
import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property';
import { UMB_CONTENT_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/content';
export class UmbBlockRteEntriesContext extends UmbBlockEntriesContext<
typeof UMB_BLOCK_RTE_MANAGER_CONTEXT,
@@ -79,7 +79,7 @@ export class UmbBlockRteEntriesContext extends UmbBlockEntriesContext<
this._workspacePath.setValue(newPath);
});
this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, (dataset) => {
this.consumeContext(UMB_CONTENT_PROPERTY_DATASET_CONTEXT, (dataset) => {
const variantId = dataset.getVariantId();
this.#catalogueModal.setUniquePathValue('variantId', variantId?.toString());
this.#workspaceModal.setUniquePathValue('variantId', variantId?.toString());

View File

@@ -0,0 +1,12 @@
import type { UmbContentPropertyDatasetContext } from './content-property-dataset.context.js';
import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property';
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
export const IsContentPropertyDatasetContext = (
context: UmbPropertyDatasetContext,
): context is UmbContentPropertyDatasetContext => (context as any).IS_CONTENT === true;
export const UMB_CONTENT_PROPERTY_DATASET_CONTEXT = new UmbContextToken<
UmbPropertyDatasetContext,
UmbContentPropertyDatasetContext
>('UmbPropertyDatasetContext', undefined, IsContentPropertyDatasetContext);

View File

@@ -23,6 +23,8 @@ export class UmbContentPropertyDatasetContext<
culture = this.#currentVariant.asObservablePart((x) => x?.culture);
segment = this.#currentVariant.asObservablePart((x) => x?.segment);
readonly IS_CONTENT = true;
getName(): string | undefined {
return this._dataOwner.getName(this.getVariantId());
}

View File

@@ -1,3 +1,4 @@
export * from './content-property-dataset.context-token.js';
export * from './content-property-dataset.context.js';
export type * from './element-property-data-owner.interface.js';
export * from './element-property-dataset.context.js';