From cbe14907d91e6ba4c3987f39d73cefdfed1036cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 25 Apr 2024 16:09:45 +0200 Subject: [PATCH] make modal-data possibly optional in modal --- .../modal-route-registration.controller.ts | 32 +++++++++++++------ .../input-document-type.element.ts | 8 ++--- .../document-type-workspace.modal-token.ts | 8 +++-- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/route-registration/modal-route-registration.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/route-registration/modal-route-registration.controller.ts index b645cc0185..87a7b863d2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/route-registration/modal-route-registration.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/route-registration/modal-route-registration.controller.ts @@ -11,16 +11,28 @@ import type { UmbDeepPartialObject } from '@umbraco-cms/backoffice/utils'; export type UmbModalRouteBuilder = (params: { [key: string]: string | number } | null) => string; export type UmbModalRouteSetupReturn = UmbModalTokenValue extends undefined - ? { - modal?: UmbDeepPartialObject; - data: UmbDeepPartialObject; - value?: UmbModalTokenValue; - } - : { - modal?: UmbDeepPartialObject; - data: UmbDeepPartialObject; - value: UmbModalTokenValue; - }; + ? UmbModalTokenValue extends undefined + ? { + modal?: UmbDeepPartialObject; + data?: UmbDeepPartialObject; + value?: UmbModalTokenValue; + } + : { + modal?: UmbDeepPartialObject; + data?: UmbDeepPartialObject; + value: UmbModalTokenValue; + } + : UmbModalTokenValue extends undefined + ? { + modal?: UmbDeepPartialObject; + data: UmbDeepPartialObject; + value?: UmbModalTokenValue; + } + : { + modal?: UmbDeepPartialObject; + data: UmbDeepPartialObject; + value: UmbModalTokenValue; + }; export class UmbModalRouteRegistrationController< UmbModalTokenData extends { [key: string]: any } = { [key: string]: any }, UmbModalTokenValue = any, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts index 0e0833545a..d40dde13e7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts @@ -4,9 +4,10 @@ import { css, html, customElement, property, state, repeat, nothing } from '@umb import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UmbModalRouteRegistrationController, UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/modal'; +import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui'; +import { UMB_DOCUMENT_TYPE_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/document-type'; @customElement('umb-input-document-type') export class UmbInputDocumentTypeElement extends UUIFormControlMixin(UmbLitElement, '') { @@ -97,7 +98,6 @@ export class UmbInputDocumentTypeElement extends UUIFormControlMixin(UmbLitEleme public get value(): string { return this.selection.join(','); } - @state() private _items?: Array; @@ -109,10 +109,10 @@ export class UmbInputDocumentTypeElement extends UUIFormControlMixin(UmbLitEleme constructor() { super(); - new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + new UmbModalRouteRegistrationController(this, UMB_DOCUMENT_TYPE_WORKSPACE_MODAL) .addAdditionalPath('document-type') .onSetup(() => { - return { data: { entityType: 'document-type', preset: {} } }; + return {}; }) .observeRouteBuilder((routeBuilder) => { this._editPath = routeBuilder({}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.modal-token.ts index 7d26329ecc..87da2aba36 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.modal-token.ts @@ -1,5 +1,7 @@ -import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/modal'; +import { UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../entity.js'; import { UMB_WORKSPACE_MODAL, UmbModalToken } from '@umbraco-cms/backoffice/modal'; +import type { UmbDeepPartialObject } from '@umbraco-cms/backoffice/utils'; +import type { UmbWorkspaceModalData, UmbWorkspaceModalValue } from '@umbraco-cms/backoffice/modal'; export interface UmbDocumentTypeWorkspaceData extends UmbWorkspaceModalData {} @@ -8,6 +10,6 @@ export const UMB_DOCUMENT_TYPE_WORKSPACE_MODAL = new UmbModalToken< UmbWorkspaceModalValue >('Umb.Modal.Workspace', { modal: UMB_WORKSPACE_MODAL.getDefaultModal(), - data: { entityType: 'block', preset: {} }, + data: { entityType: UMB_DOCUMENT_TYPE_ENTITY_TYPE, preset: {} }, // Recast the type, so the entityType data prop is not required: -}) as UmbModalToken, UmbWorkspaceModalValue>; +}) as UmbModalToken, UmbWorkspaceModalValue>;