correct types

This commit is contained in:
Niels Lyngsø
2023-01-23 14:55:56 +01:00
parent 2978d1072e
commit 8465793de7
6 changed files with 20 additions and 19 deletions

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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;
/**

View File

@@ -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;

View File

@@ -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;

View File

@@ -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.