diff --git a/src/Umbraco.Web.UI.Client/examples/custom-modal/example-custom-modal-dashboard.element.ts b/src/Umbraco.Web.UI.Client/examples/custom-modal/example-custom-modal-dashboard.element.ts index 0f63156871..1606e9aab2 100644 --- a/src/Umbraco.Web.UI.Client/examples/custom-modal/example-custom-modal-dashboard.element.ts +++ b/src/Umbraco.Web.UI.Client/examples/custom-modal/example-custom-modal-dashboard.element.ts @@ -1,7 +1,7 @@ import { EXAMPLE_MODAL_TOKEN, type ExampleModalData, type ExampleModalResult } from './example-modal-token.js'; -import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UMB_MODAL_MANAGER_CONTEXT, type UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import './example-custom-modal-element.element.js'; @customElement('example-custom-modal-dashboard') @@ -9,9 +9,6 @@ export class UmbExampleCustomModalDashboardElement extends UmbLitElement { #modalManagerContext? : typeof UMB_MODAL_MANAGER_CONTEXT.TYPE; - /** - * - */ constructor() { super(); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT,(instance)=>{ @@ -27,14 +24,16 @@ export class UmbExampleCustomModalDashboardElement extends UmbLitElement { return html`

Open the custom modal

- Open Modal + Open Modal
`; } static override styles = [css` - - + :host{ + display:block; + padding:20px; + } `]; } diff --git a/src/Umbraco.Web.UI.Client/examples/custom-modal/example-modal-token.ts b/src/Umbraco.Web.UI.Client/examples/custom-modal/example-modal-token.ts index 5251b983d1..84a643f051 100644 --- a/src/Umbraco.Web.UI.Client/examples/custom-modal/example-modal-token.ts +++ b/src/Umbraco.Web.UI.Client/examples/custom-modal/example-modal-token.ts @@ -1,4 +1,3 @@ -import type { UUIDialogElement } from "@umbraco-cms/backoffice/external/uui"; import { UmbModalToken } from "@umbraco-cms/backoffice/modal"; export interface ExampleModalData { @@ -13,17 +12,8 @@ export const EXAMPLE_MODAL_TOKEN = new UmbModalToken< ExampleModalData, ExampleModalResult >('example.modal.custom.element', { - modal : { type : 'custom', - // element : ()=> { - // // returning the custom modal element - // const modalDialogElement = document.createElement('example-modal-element'); - // const dialogElement: UUIDialogElement = document.createElement('uui-dialog'); - // modalDialogElement.appendChild(dialogElement); - // return modalDialogElement; - // } element: () => import('./example-custom-modal-element.element.js'), } - }); diff --git a/src/Umbraco.Web.UI.Client/examples/custom-modal/index.ts b/src/Umbraco.Web.UI.Client/examples/custom-modal/index.ts index 31e7d958c6..2ddf119f38 100644 --- a/src/Umbraco.Web.UI.Client/examples/custom-modal/index.ts +++ b/src/Umbraco.Web.UI.Client/examples/custom-modal/index.ts @@ -2,10 +2,10 @@ import type { ManifestDashboard } from '@umbraco-cms/backoffice/dashboard'; import type { ManifestModal } from '@umbraco-cms/backoffice/modal'; const demoModal : ManifestModal = { - type: 'modal', - name: 'Example Custom Modal Element', - alias: 'example.modal.custom.element', - js: () => import('./example-modal-view.element.js'), + type: 'modal', + name: 'Example Custom Modal Element', + alias: 'example.modal.custom.element', + js: () => import('./example-modal-view.element.js'), } const demoModalsDashboard : ManifestDashboard = { @@ -18,6 +18,12 @@ const demoModalsDashboard : ManifestDashboard = { label: 'Custom Modal', pathname: 'custom-modal', }, + conditions : [ + { + alias: 'Umb.Condition.SectionAlias', + match: 'Umb.Section.Content' + } + ] } export default [demoModal,demoModalsDashboard]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal-manager.context.ts index c603ab249b..41c35e2f3f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal-manager.context.ts @@ -15,7 +15,7 @@ export interface UmbModalConfig { size?: UUIModalSidebarSize; /** - * Used to provide a custom modal element + * Used to provide a custom modal element to replace the default uui-modal-dialog or uui-modal-sidebar */ element?: ElementLoaderProperty; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts index 00299c32e7..c4ff23d8d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts @@ -7,7 +7,7 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import { type UmbDeepPartialObject, umbDeepMerge } from '@umbraco-cms/backoffice/utils'; -import { loadManifestElement, type ElementLoaderProperty } from '@umbraco-cms/backoffice/extension-api'; +import { type ElementLoaderProperty } from '@umbraco-cms/backoffice/extension-api'; export interface UmbModalRejectReason { type: string; @@ -15,7 +15,9 @@ export interface UmbModalRejectReason { export type UmbModalContextClassArgs< ModalAliasType extends string | UmbModalToken, - ModalAliasTypeAsToken extends UmbModalToken = ModalAliasType extends UmbModalToken ? ModalAliasType : UmbModalToken, + ModalAliasTypeAsToken extends UmbModalToken = ModalAliasType extends UmbModalToken + ? ModalAliasType + : UmbModalToken, > = { router?: IRouterSlot | null; data?: ModalAliasTypeAsToken['DATA'];