correct types
This commit is contained in:
@@ -19,7 +19,7 @@ export const UMB_DOCUMENT_DETAIL_STORE_CONTEXT_TOKEN = new UmbContextToken<UmbDo
|
||||
export class UmbDocumentDetailStore extends UmbStoreBase implements UmbContentStore<DocumentDetails> {
|
||||
|
||||
|
||||
private _data = new UniqueArrayBehaviorSubject<DocumentDetails>([], (a, b) => a.key === b.key);
|
||||
private _data = new UniqueArrayBehaviorSubject<DocumentDetails>([], (x) => x.key);
|
||||
|
||||
|
||||
constructor(host: UmbControllerHostInterface) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { UmbWorkspaceContentContext } from '../../../shared/components/workspace/workspace-content/workspace-content.context';
|
||||
import { DOCUMENT_DETAIl_STORE_ALIAS } from '../document.detail.store';
|
||||
import type { UmbDocumentDetailStore, UmbDocumentStoreItemType } from '../document.detail.store';
|
||||
import { DOCUMENT_DETAIL_STORE_ALIAS } from '../document.detail.store';
|
||||
import type { UmbDocumentDetailStore } from '../document.detail.store';
|
||||
import type { UmbControllerHostInterface } from '@umbraco-cms/controller';
|
||||
import type { DocumentDetails } from '@umbraco-cms/models';
|
||||
import { appendToFrozenArray } from '@umbraco-cms/observable-api';
|
||||
@@ -32,11 +32,11 @@ const DefaultDocumentData = {
|
||||
name: '',
|
||||
},
|
||||
],
|
||||
} as UmbDocumentStoreItemType;
|
||||
} as DocumentDetails;
|
||||
|
||||
export class UmbWorkspaceDocumentContext extends UmbWorkspaceContentContext<UmbDocumentStoreItemType, UmbDocumentStore> {
|
||||
export class UmbWorkspaceDocumentContext extends UmbWorkspaceContentContext<DocumentDetails, UmbDocumentDetailStore> {
|
||||
constructor(host: UmbControllerHostInterface) {
|
||||
super(host, DefaultDocumentData, DOCUMENT_DETAIl_STORE_ALIAS, 'document');
|
||||
super(host, DefaultDocumentData, DOCUMENT_DETAIL_STORE_ALIAS, 'document');
|
||||
}
|
||||
|
||||
public setPropertyValue(alias: string, value: unknown) {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { map, Observable } from 'rxjs';
|
||||
import { UmbDataStoreBase } from '../../../core/stores/store';
|
||||
import type { DataTypeDetails } from '@umbraco-cms/models';
|
||||
import { DataTypeResource, FolderTreeItem } from '@umbraco-cms/backend-api';
|
||||
import { tryExecuteAndNotify } from '@umbraco-cms/resources';
|
||||
import { UmbContextToken } from '@umbraco-cms/context-api';
|
||||
import { UmbStoreBase } from '@umbraco-cms/stores/store-base';
|
||||
|
||||
const isDataTypeDetails = (dataType: DataTypeDetails | FolderTreeItem): dataType is DataTypeDetails => {
|
||||
return (dataType as DataTypeDetails).data !== undefined;
|
||||
@@ -22,7 +22,8 @@ export const STORE_ALIAS = 'UmbDataTypeStore';
|
||||
* @extends {UmbDataStoreBase<DataTypeDetails | FolderTreeItem>}
|
||||
* @description - Data Store for Data Types
|
||||
*/
|
||||
export class UmbDataTypeStore extends UmbDataStoreBase<UmbDataTypeStoreItemType> {
|
||||
export class UmbDataTypeStore extends UmbStoreBase {
|
||||
|
||||
public readonly storeAlias = STORE_ALIAS;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { ContentTreeItem } from '@umbraco-cms/backend-api';
|
||||
import { UmbTreeStore } from '@umbraco-cms/stores/store';
|
||||
import { UmbTreeDataStore } from '@umbraco-cms/stores/store';
|
||||
import { UmbControllerHostInterface } from '@umbraco-cms/controller';
|
||||
import { UmbContextToken, UmbContextConsumerController } from '@umbraco-cms/context-api';
|
||||
import { UniqueBehaviorSubject, UmbObserverController } from '@umbraco-cms/observable-api';
|
||||
export class UmbCollectionContext<
|
||||
DataType extends ContentTreeItem,
|
||||
StoreType extends UmbTreeStore<DataType> = UmbTreeStore<DataType>
|
||||
StoreType extends UmbTreeDataStore<DataType> = UmbTreeDataStore<DataType>
|
||||
> {
|
||||
private _host: UmbControllerHostInterface;
|
||||
private _entityKey: string | null;
|
||||
|
||||
@@ -10,8 +10,8 @@ import type { ContentDetails } from '@umbraco-cms/models';
|
||||
// TODO: Consider if its right to have this many class-inheritance of WorkspaceContext
|
||||
// TODO: Could we extract this code into a 'Manager' of its own, which will be instantiated by the concrete Workspace Context. This will be more transparent and 'reuseable'
|
||||
export abstract class UmbWorkspaceContentContext<
|
||||
ContentTypeType extends ContentDetails,
|
||||
StoreType extends UmbContentStore<ContentTypeType>
|
||||
ContentTypeType extends ContentDetails = ContentDetails,
|
||||
StoreType extends UmbContentStore<ContentTypeType> = UmbContentStore<ContentTypeType>
|
||||
> {
|
||||
protected _host: UmbControllerHostInterface;
|
||||
|
||||
|
||||
@@ -5,27 +5,27 @@ export interface UmbDataStoreIdentifiers {
|
||||
[more: string]: any;
|
||||
}
|
||||
|
||||
export interface UmbDataStore<T> {
|
||||
export interface UmbDataStore {
|
||||
readonly storeAlias: string;
|
||||
|
||||
// TODO: is items the right name?
|
||||
readonly items: Observable<Array<T>>;
|
||||
updateItems(items: Array<T>): void;
|
||||
// TODO: is it right to enforce these? Niels: Ill keep them out for now:
|
||||
//readonly items: Observable<Array<T>>;
|
||||
//updateItems(items: Array<T>): void;
|
||||
}
|
||||
|
||||
export interface UmbTreeStore<T> extends UmbDataStore<T> {
|
||||
export interface UmbTreeStore<T> extends UmbDataStore {
|
||||
getTreeRoot(): Observable<Array<T>>;
|
||||
getTreeItemChildren(key: string): Observable<Array<T>>;
|
||||
}
|
||||
|
||||
export interface UmbContentStore<T> extends UmbDataStore<T> {
|
||||
export interface UmbContentStore<T> extends UmbDataStore {
|
||||
/**
|
||||
* @description - Request data by key. The data is added to the store and is returned as an Observable.
|
||||
* @param {string} key
|
||||
* @return {*} {(Observable<T>)}
|
||||
* @memberof UmbDataStoreBase
|
||||
*/
|
||||
getByKey(key: string): Observable<T>;
|
||||
getByKey(key: string): Observable<T | undefined>;
|
||||
|
||||
/**
|
||||
* @description - Save data.
|
||||
|
||||
Reference in New Issue
Block a user