datatype workspace modal

This commit is contained in:
Niels Lyngsø
2024-01-12 12:35:52 +01:00
committed by Jacob Overgaard
parent 0a38673a21
commit a3381b3669
5 changed files with 22 additions and 15 deletions

View File

@@ -1,11 +1,8 @@
import { UMB_DATATYPE_WORKSPACE_MODAL } from '../../index.js';
import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit';
import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
import {
UmbModalRouteRegistrationController,
UMB_DATA_TYPE_PICKER_FLOW_MODAL,
UMB_WORKSPACE_MODAL,
} from '@umbraco-cms/backoffice/modal';
import { UmbModalRouteRegistrationController, UMB_DATA_TYPE_PICKER_FLOW_MODAL } from '@umbraco-cms/backoffice/modal';
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
// Note: Does only support picking a single data type. But this could be developed later into this same component. To follow other picker input components.
@@ -49,9 +46,7 @@ export class UmbInputDataTypeElement extends FormControlMixin(UmbLitElement) {
constructor() {
super();
this.#editDataTypeModal = new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL).onSetup(() => {
return { data: { entityType: 'data-type', preset: {} } };
});
this.#editDataTypeModal = new UmbModalRouteRegistrationController(this, UMB_DATATYPE_WORKSPACE_MODAL);
new UmbModalRouteRegistrationController(this, UMB_DATA_TYPE_PICKER_FLOW_MODAL)
.onSetup(() => {

View File

@@ -4,7 +4,6 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui';
import {
UMB_DATA_TYPE_PICKER_FLOW_DATA_TYPE_PICKER_MODAL,
UMB_WORKSPACE_MODAL,
UmbDataTypePickerFlowModalData,
UmbDataTypePickerFlowModalValue,
UmbModalBaseElement,
@@ -13,6 +12,7 @@ import {
} from '@umbraco-cms/backoffice/modal';
import { ManifestPropertyEditorUi, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree';
import { UMB_DATATYPE_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/data-type';
interface GroupedItems<T> {
[key: string]: Array<T>;
@@ -73,7 +73,7 @@ export class UmbDataTypePickerFlowModalElement extends UmbModalBaseElement<
this.requestUpdate('_dataTypePickerModalRouteBuilder');
});
this._createDataTypeModal = new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL)
this._createDataTypeModal = new UmbModalRouteRegistrationController(this, UMB_DATATYPE_WORKSPACE_MODAL)
.addAdditionalPath(':uiAlias')
.onSetup((params) => {
return { data: { entityType: 'data-type', preset: { editorUiAlias: params.uiAlias } } };

View File

@@ -0,0 +1,14 @@
import { CreateDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api';
import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal';
export const UMB_DATATYPE_WORKSPACE_MODAL = new UmbModalToken<
UmbWorkspaceData<CreateDataTypeRequestModel>,
UmbWorkspaceValue
>('Umb.Modal.Workspace', {
modal: {
type: 'sidebar',
size: 'large',
},
data: { entityType: 'data-type', preset: {} },
// Recast the type, so the entityType data prop is not required:
}) as UmbModalToken<Omit<UmbWorkspaceData<CreateDataTypeRequestModel>, 'entityType'>, UmbWorkspaceValue>;

View File

@@ -1 +1,2 @@
export * from './data-type-workspace.context-token.js';
export * from './data-type-workspace.modal-token.js';

View File

@@ -1,10 +1,7 @@
import { CreateDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api';
import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
// TODO: Change model:
export interface UmbWorkspaceData {
export interface UmbWorkspaceData<DataModelType = unknown> {
entityType: string;
preset: Partial<CreateDataTypeRequestModel>;
preset: Partial<DataModelType>;
}
// TODO: It would be good with a WorkspaceValueBaseType, to avoid the hardcoded type for unique here: