use client tree item models in interfaces

This commit is contained in:
Mads Rasmussen
2023-11-14 10:06:30 +01:00
parent 2992434ba1
commit 59571c7db5
2 changed files with 14 additions and 10 deletions

View File

@@ -1,9 +1,16 @@
import type { UmbPagedData } from './types.js';
import type { DataSourceResponse } from './data-source-response.interface.js';
import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbTreeItemModel } from '@umbraco-cms/backoffice/tree';
export interface UmbTreeDataSource<ItemType = any, PagedItemType = UmbPagedData<ItemType>> {
getRootItems(): Promise<DataSourceResponse<PagedItemType>>;
getChildrenOf(parentUnique: string | null): Promise<DataSourceResponse<PagedItemType>>;
export interface UmbTreeDataSourceConstructor<TreeItemType extends UmbTreeItemModel = UmbTreeItemModel> {
new (host: UmbControllerHost): UmbTreeDataSource<TreeItemType>;
}
export interface UmbTreeDataSource<TreeItemType extends UmbTreeItemModel = UmbTreeItemModel> {
getTreeRoot?(): Promise<DataSourceResponse<TreeItemType>>;
getRootItems(): Promise<DataSourceResponse<UmbPagedData<TreeItemType>>>;
getChildrenOf(parentUnique: string | null): Promise<DataSourceResponse<UmbPagedData<TreeItemType>>>;
// TODO: remove this when all repositories are migrated to the new items interface
getItems(unique: Array<string>): Promise<DataSourceResponse<Array<any>>>;
}

View File

@@ -1,15 +1,12 @@
import { type UmbTreeItemModel } from '../tree/types.js';
import { type UmbPagedData } from './data-source/types.js';
import { type Observable } from '@umbraco-cms/backoffice/external/rxjs';
import type { UmbTreeRootEntityModel, UmbTreeRootModel } from '@umbraco-cms/backoffice/tree';
import { ProblemDetails, EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api';
import { ProblemDetails } from '@umbraco-cms/backoffice/backend-api';
import { UmbApi } from '@umbraco-cms/backoffice/extension-api';
export interface UmbTreeRepository<
TreeItemType extends EntityTreeItemResponseModel,
TreeRootType extends UmbTreeRootModel = UmbTreeRootEntityModel
> extends UmbApi {
export interface UmbTreeRepository<TreeItemType extends UmbTreeItemModel = UmbTreeItemModel> extends UmbApi {
requestTreeRoot: () => Promise<{
data?: TreeRootType;
data?: TreeItemType;
error?: ProblemDetails;
}>;