From 913cce2133512d7caabc0668f35d1e33175b21fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 9 Jan 2023 15:45:17 +0100 Subject: [PATCH] fix type compliance --- .../document-types/document-type.store.ts | 2 +- .../document-type-workspace.context.ts | 5 +++++ .../documents/documents/document.store.ts | 2 +- .../workspace/document-workspace.context.ts | 20 ++++++++++++++++-- .../workspace/media-workspace.context.ts | 4 ++++ .../workspace-content.context.ts | 21 ++++--------------- .../workspace/user-group-workspace.context.ts | 5 +++++ .../users/workspace/user-workspace.context.ts | 4 ++++ .../src/core/models/index.ts | 7 +++---- 9 files changed, 45 insertions(+), 25 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/document-type.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/document-type.store.ts index 3e4f355374..6bfc435fed 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/document-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/document-type.store.ts @@ -3,7 +3,7 @@ import { UmbDataStoreBase } from '../../../core/stores/store'; import { ApiError, DocumentTypeResource, DocumentTypeTreeItem, ProblemDetails } from '@umbraco-cms/backend-api'; import type { DocumentTypeDetails } from '@umbraco-cms/models'; -const isDocumentTypeDetails = ( +export const isDocumentTypeDetails = ( documentType: DocumentTypeDetails | DocumentTypeTreeItem ): documentType is DocumentTypeDetails => { return (documentType as DocumentTypeDetails).properties !== undefined; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.context.ts index 86d909b900..519cf7110f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/workspace/document-type-workspace.context.ts @@ -23,4 +23,9 @@ export class UmbWorkspaceDocumentTypeContext extends UmbWorkspaceContentContext< constructor(host: UmbControllerHostInterface) { super(host, DefaultDocumentTypeData, 'umbDocumentTypeStore', 'documentType'); } + + + public setPropertyValue(alias: string, value: unknown) { + throw new Error("setPropertyValue is not implemented for UmbWorkspaceDocumentTypeContext") + } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/document.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/document.store.ts index a42b8deb66..39c9bb050e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/document.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/document.store.ts @@ -3,7 +3,7 @@ import { UmbNodeStoreBase } from '../../../core/stores/store'; import type { DocumentDetails } from '@umbraco-cms/models'; import { ApiError, DocumentResource, DocumentTreeItem, FolderTreeItem, ProblemDetails } from '@umbraco-cms/backend-api'; -const isDocumentDetails = (document: DocumentDetails | DocumentTreeItem): document is DocumentDetails => { +export const isDocumentDetails = (document: DocumentDetails | DocumentTreeItem): document is DocumentDetails => { return (document as DocumentDetails).data !== undefined; }; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/document-workspace.context.ts index 6d18c7adb8..da1b8b5d3d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/document-workspace.context.ts @@ -1,7 +1,8 @@ import { UmbWorkspaceContentContext } from '../../../shared/components/workspace/workspace-content/workspace-content.context'; -import { STORE_ALIAS } from 'src/backoffice/documents/documents/document.store'; +import { isDocumentDetails, STORE_ALIAS } from 'src/backoffice/documents/documents/document.store'; import type { UmbDocumentStore, UmbDocumentStoreItemType } from 'src/backoffice/documents/documents/document.store'; import { UmbControllerHostInterface } from 'src/core/controller/controller-host.mixin'; +import type { DocumentDetails } from '@umbraco-cms/models'; const DefaultDocumentData = { key: '', @@ -37,8 +38,23 @@ export class UmbWorkspaceDocumentContext extends UmbWorkspaceContentContext { + if (entry.alias === alias) { + return {alias: alias, value: value}; + } + return entry; + }); + this.update({data: newDataSet} as Partial); + } + } + /* concept notes: @@ -51,4 +67,4 @@ export class UmbWorkspaceDocumentContext extends UmbWorkspaceContentContext = UmbNodeStoreBase > { @@ -108,22 +108,9 @@ export class UmbWorkspaceContentContext< return this._store; } + abstract setPropertyValue(alias: string, value: unknown):void; - - - public setPropertyValue(alias: string, value: unknown) { - const newDataSet = this.getData().data.map((entry) => { - if (entry.alias === alias) { - return {alias: alias, value: value}; - } - return entry; - }); - - - this.update({data: newDataSet} as Partial); - } - public save(): Promise { if(!this._store) { // TODO: more beautiful error: diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/workspace/user-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/workspace/user-group-workspace.context.ts index beea232e4b..067c239697 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/workspace/user-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/workspace/user-group-workspace.context.ts @@ -21,4 +21,9 @@ export class UmbWorkspaceUserGroupContext extends UmbWorkspaceContentContext< constructor(host: UmbControllerHostInterface) { super(host, DefaultDataTypeData, 'umbUserStore', 'userGroup'); } + + + public setPropertyValue(alias: string, value: unknown) { + throw new Error("setPropertyValue is not implemented for UmbWorkspaceUserGroupContext") + } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.context.ts index 2016e0609b..5e59f0246c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/workspace/user-workspace.context.ts @@ -24,4 +24,8 @@ export class UmbWorkspaceUserContext extends UmbWorkspaceContentContext; - data: Array; + //data: Array; //layout?: any; // TODO: define layout type - make it non-optional } @@ -103,7 +102,7 @@ export interface ContentPropertyData { } // Documents -export interface DocumentDetails extends DocumentTreeItem, ContentDetails { +export interface DocumentDetails extends DocumentTreeItem { key: string; // TODO: Remove this when the backend is fixed isTrashed: boolean; // TODO: remove only temp part of refactor properties: Array;