From 7dd3a4ff4e9d05eb427e2e9c26a62d033de2e57d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 13 May 2024 14:35:14 +0200 Subject: [PATCH] require unique --- .../core/tree/data/tree-repository.interface.ts | 6 +++--- .../core/tree/default/default-tree.context.ts | 4 ++-- .../core/tree/default/default-tree.element.ts | 4 ++-- .../tree-item-base/tree-item-context-base.ts | 17 +++++------------ .../tree-item-default.context.ts | 2 +- 5 files changed, 13 insertions(+), 20 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository.interface.ts index 852ea0d38d..9ba02b296a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository.interface.ts @@ -1,4 +1,4 @@ -import type { UmbTreeItemModelBase } from '../types.js'; +import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '../types.js'; import type { UmbTreeChildrenOfRequestArgs, UmbTreeAncestorsOfRequestArgs, @@ -18,8 +18,8 @@ import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; * @template TreeRootType */ export interface UmbTreeRepository< - TreeItemType extends UmbTreeItemModelBase = UmbTreeItemModelBase, - TreeRootType extends UmbTreeItemModelBase = UmbTreeItemModelBase, + TreeItemType extends UmbUniqueTreeItemModel = UmbUniqueTreeItemModel, + TreeRootType extends UmbUniqueTreeRootModel = UmbUniqueTreeRootModel, > extends UmbApi { /** * Requests the root of the tree. diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.context.ts index c55e88dd19..085bfb1886 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.context.ts @@ -1,5 +1,5 @@ import { UmbRequestReloadTreeItemChildrenEvent } from '../reload-tree-item-children/index.js'; -import type { UmbTreeItemModelBase } from '../types.js'; +import type { UmbUniqueTreeItemModel } from '../types.js'; import type { UmbTreeRepository } from '../data/tree-repository.interface.js'; import type { UmbTreeContext } from '../tree-context.interface.js'; import { type UmbActionEventContext, UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; @@ -17,7 +17,7 @@ import { UmbArrayState, UmbObjectState } from '@umbraco-cms/backoffice/observabl import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -export class UmbDefaultTreeContext +export class UmbDefaultTreeContext extends UmbContextBase> implements UmbTreeContext { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.element.ts index ca9600010e..e2755b90a9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/default/default-tree.element.ts @@ -1,4 +1,4 @@ -import type { UmbTreeItemModelBase, UmbTreeSelectionConfiguration } from '../types.js'; +import type { UmbTreeItemModelBase, UmbTreeSelectionConfiguration, UmbUniqueTreeItemModel } from '../types.js'; import type { UmbDefaultTreeContext } from './default-tree.context.js'; import { UMB_DEFAULT_TREE_CONTEXT } from './default-tree.context.js'; import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; @@ -40,7 +40,7 @@ export class UmbDefaultTreeElement extends UmbLitElement { @state() private _totalPages = 1; - #treeContext?: UmbDefaultTreeContext; + #treeContext?: UmbDefaultTreeContext; #init: Promise; constructor() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts index 051e783153..6bf07b6a31 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts @@ -1,6 +1,6 @@ import type { UmbTreeItemContext } from '../tree-item-context.interface.js'; import { UMB_DEFAULT_TREE_CONTEXT, type UmbDefaultTreeContext } from '../../default/default-tree.context.js'; -import type { UmbTreeItemModelBase } from '../../types.js'; +import type { UmbUniqueTreeItemModel } from '../../types.js'; import { UmbRequestReloadTreeItemChildrenEvent } from '../../reload-tree-item-children/index.js'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_SECTION_CONTEXT, UMB_SECTION_SIDEBAR_CONTEXT } from '@umbraco-cms/backoffice/section'; @@ -17,11 +17,7 @@ import type { UmbEntityActionEvent } from '@umbraco-cms/backoffice/entity-action import { UmbPaginationManager, debounce } from '@umbraco-cms/backoffice/utils'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -export type UmbTreeItemUniqueFunction = ( - x: TreeItemType, -) => string | null | undefined; - -export abstract class UmbTreeItemContextBase +export abstract class UmbTreeItemContextBase extends UmbContextBase> implements UmbTreeItemContext { @@ -67,7 +63,6 @@ export abstract class UmbTreeItemContextBase; // TODO: get this from the tree context #paging = { @@ -75,10 +70,9 @@ export abstract class UmbTreeItemContextBase) { + constructor(host: UmbControllerHost) { super(host, UMB_TREE_ITEM_CONTEXT); this.pagination.setPageSize(this.#paging.take); - this.#getUniqueFunction = getUniqueFunction; this.#consumeContexts(); // listen for page changes on the pagination manager @@ -134,10 +128,9 @@ export abstract class UmbTreeItemContextBase extends UmbTreeItemContextBase { constructor(host: UmbControllerHost) { - super(host, (x: UmbUniqueTreeItemModel) => x.unique); + super(host); } }