register user picker

This commit is contained in:
Mads Rasmussen
2023-03-08 20:55:24 +01:00
parent d38e20aee5
commit 20580ff113
5 changed files with 29 additions and 5 deletions

View File

@@ -4,6 +4,7 @@ import { customElement, state } from 'lit/decorators.js';
import { UmbInputListBase } from '../input-list-base/input-list-base';
import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../../users/users/user.store';
import type { UserEntity } from '@umbraco-cms/models';
import { UMB_USER_PICKER_MODAL_TOKEN } from 'src/backoffice/users/users/modals/user-picker';
@customElement('umb-input-user')
export class UmbPickerUserElement extends UmbInputListBase {
@@ -38,7 +39,7 @@ export class UmbPickerUserElement extends UmbInputListBase {
connectedCallback(): void {
super.connectedCallback();
this.pickerLayout = 'umb-picker-layout-user';
this.pickerToken = UMB_USER_PICKER_MODAL_TOKEN;
this.consumeContext(UMB_USER_STORE_CONTEXT_TOKEN, (userStore) => {
this._userStore = userStore;
this._observeUser();

View File

@@ -1,3 +1,4 @@
import { manifests as workspaceManifests } from './workspace/manifests';
import { manifests as modalManifests } from './modals/manifests';
export const manifests = [...workspaceManifests];
export const manifests = [...workspaceManifests, ...modalManifests];

View File

@@ -0,0 +1,12 @@
import type { ManifestModal } from '@umbraco-cms/extensions-registry';
const modals: Array<ManifestModal> = [
{
type: 'modal',
alias: 'Umb.Modal.UserPicker',
name: 'User Picker Modal',
loader: () => import('./user-picker/user-picker-modal.element'),
},
];
export const manifests = [...modals];

View File

@@ -0,0 +1,8 @@
import type { UserDetails } from '@umbraco-cms/models';
import { UmbModalToken } from 'libs/modal';
import type { UmbPickerModalData } from 'libs/modal/layouts/modal-layout-picker-base';
export const UMB_USER_PICKER_MODAL_TOKEN = new UmbModalToken<UmbPickerModalData<UserDetails>>('Umb.Modal.UserPicker', {
type: 'sidebar',
size: 'small',
});

View File

@@ -5,8 +5,8 @@ import { UmbModalLayoutPickerBase } from '../../../../../../libs/modal/layouts/m
import { UmbUserStore, UMB_USER_STORE_CONTEXT_TOKEN } from '../../user.store';
import type { UserDetails } from '@umbraco-cms/models';
@customElement('umb-picker-layout-user')
export class UmbPickerLayoutUserElement extends UmbModalLayoutPickerBase<UserDetails> {
@customElement('umb-user-picker-modal')
export class UmbUserPickerModalElement extends UmbModalLayoutPickerBase<UserDetails> {
static styles = [
UUITextStyles,
css`
@@ -105,8 +105,10 @@ export class UmbPickerLayoutUserElement extends UmbModalLayoutPickerBase<UserDet
}
}
export default UmbUserPickerModalElement;
declare global {
interface HTMLElementTagNameMap {
'umb-picker-layout-user': UmbPickerLayoutUserElement;
'umb-user-picker-modal': UmbUserPickerModalElement;
}
}