migrate UmbUserStore to UmbContextAlias

This commit is contained in:
Jacob Overgaard
2023-01-17 16:03:22 +01:00
parent c1a66db403
commit 25374ffeb6
11 changed files with 33 additions and 26 deletions

View File

@@ -3,7 +3,7 @@ import { css, html, nothing, PropertyValueMap } from 'lit';
import { customElement, state } from 'lit/decorators.js';
import { UmbInputListBase } from '../../../backoffice/shared/components/input-list-base/input-list-base';
import type { UserEntity } from '@umbraco-cms/models';
import { UmbUserStore } from 'src/backoffice/users/users/user.store';
import { UmbUserStore, UMB_USER_STORE_CONTEXT_ALIAS } from 'src/backoffice/users/users/user.store';
@customElement('umb-input-user')
export class UmbPickerUserElement extends UmbInputListBase {
@@ -39,7 +39,7 @@ export class UmbPickerUserElement extends UmbInputListBase {
connectedCallback(): void {
super.connectedCallback();
this.pickerLayout = 'umb-picker-layout-user';
this.consumeContext('umbUserStore', (userStore: UmbUserStore) => {
this.consumeContext(UMB_USER_STORE_CONTEXT_ALIAS, (userStore) => {
this._userStore = userStore;
this._observeUser();
});

View File

@@ -4,7 +4,7 @@ import { css, html } from 'lit';
import { UmbModalService, UMB_MODAL_SERVICE_CONTEXT_ALIAS } from '../core/modal';
import { UmbNotificationService, UMB_NOTIFICATION_SERVICE_CONTEXT_ALIAS } from '../core/notification';
import { UmbUserStore } from './users/users/user.store';
import { UmbUserStore, UMB_USER_STORE_CONTEXT_ALIAS } from './users/users/user.store';
import { UmbUserGroupStore } from './users/user-groups/user-group.store';
import { UmbCurrentUserStore, UMB_CURRENT_USER_STORE_CONTEXT_ALIAS } from './users/current-user/current-user.store';
import { UmbCurrentUserHistoryStore } from './users/current-user/current-user-history.store';
@@ -67,7 +67,7 @@ export class UmbBackofficeElement extends UmbLitElement {
this.provideContext(UMB_DOCUMENT_TYPE_STORE_CONTEXT_ALIAS, new UmbDocumentTypeStore(this));
this.provideContext(UMB_MEDIA_TYPE_STORE_CONTEXT_ALIAS, new UmbMediaTypeStore(this));
this.provideContext(UMB_MEMBER_TYPE_STORE_CONTEXT_ALIAS, new UmbMemberTypeStore(this));
this.provideContext('umbUserStore', new UmbUserStore(this));
this.provideContext(UMB_USER_STORE_CONTEXT_ALIAS, new UmbUserStore(this));
this.provideContext('umbUserGroupStore', new UmbUserGroupStore(this));
this.provideContext('umbMemberGroupStore', new UmbMemberGroupStore(this));
this.provideContext('umbSectionStore', new UmbSectionStore());

View File

@@ -1,4 +1,5 @@
import { UmbWorkspaceContentContext } from '../../../shared/components/workspace/workspace-content/workspace-content.context';
import { UMB_USER_STORE_CONTEXT_ALIAS } from '../../users/user.store';
import type { UmbUserGroupStore, UmbUserGroupStoreItemType } from 'src/backoffice/users/user-groups/user-group.store';
import { UmbControllerHostInterface } from '@umbraco-cms/controller';
@@ -19,11 +20,10 @@ export class UmbWorkspaceUserGroupContext extends UmbWorkspaceContentContext<
UmbUserGroupStore
> {
constructor(host: UmbControllerHostInterface) {
super(host, DefaultDataTypeData, 'umbUserStore', 'userGroup');
super(host, DefaultDataTypeData, UMB_USER_STORE_CONTEXT_ALIAS.toString(), 'userGroup');
}
public setPropertyValue(alias: string, value: unknown) {
throw new Error("setPropertyValue is not implemented for UmbWorkspaceUserGroupContext")
throw new Error('setPropertyValue is not implemented for UmbWorkspaceUserGroupContext');
}
}

View File

@@ -7,7 +7,7 @@ import { distinctUntilChanged } from 'rxjs';
import { UmbWorkspaceUserGroupContext } from './user-group-workspace.context';
import type { ManifestWorkspaceAction, UserGroupDetails } from '@umbraco-cms/models';
import { umbExtensionsRegistry } from '@umbraco-cms/extensions-registry';
import type { UmbUserStore } from 'src/backoffice/users/users/user.store';
import { UmbUserStore, UMB_USER_STORE_CONTEXT_ALIAS } from 'src/backoffice/users/users/user.store';
import '../../../../auth/components/input-user/input-user.element';
import '../../../../backoffice/shared/components/input-section/input-section.element';
@@ -16,7 +16,6 @@ import { UmbWorkspaceEntityElement } from 'src/backoffice/shared/components/work
@customElement('umb-user-group-workspace')
export class UmbUserGroupWorkspaceElement extends UmbLitElement implements UmbWorkspaceEntityElement {
static styles = [
UUITextStyles,
css`
@@ -217,7 +216,7 @@ export class UmbUserGroupWorkspaceElement extends UmbLitElement implements UmbWo
this._registerWorkspaceActions();
this.consumeContext('umbUserStore', (instance) => {
this.consumeContext(UMB_USER_STORE_CONTEXT_ALIAS, (instance) => {
this._userStore = instance;
this._observeUsers();
});
@@ -233,8 +232,7 @@ export class UmbUserGroupWorkspaceElement extends UmbLitElement implements UmbWo
type: 'workspaceAction',
alias: 'Umb.WorkspaceAction.UserGroup.Save',
name: 'Save User Group Workspace Action',
loader: () =>
import('../../../shared/components/workspace/actions/save/workspace-action-node-save.element'),
loader: () => import('../../../shared/components/workspace/actions/save/workspace-action-node-save.element'),
meta: {
workspaces: ['Umb.Workspace.UserGroup'],
look: 'primary',

View File

@@ -9,7 +9,7 @@ import './list-view-layouts/grid/workspace-view-users-grid.element';
import './workspace-view-users-selection.element';
import './workspace-view-users-invite.element';
import type { ManifestWorkspace, UserDetails } from '@umbraco-cms/models';
import { UmbUserStore } from 'src/backoffice/users/users/user.store';
import { UmbUserStore, UMB_USER_STORE_CONTEXT_ALIAS } from 'src/backoffice/users/users/user.store';
import { createExtensionElement } from '@umbraco-cms/extensions-api';
import { UmbLitElement } from '@umbraco-cms/element';
import { UniqueBehaviorSubject } from '@umbraco-cms/observable-api';
@@ -45,7 +45,7 @@ export class UmbSectionViewUsersElement extends UmbLitElement {
constructor() {
super();
this.consumeContext<UmbUserStore>('umbUserStore', (_instance) => {
this.consumeContext<UmbUserStore>(UMB_USER_STORE_CONTEXT_ALIAS, (_instance) => {
this._userStore = _instance;
this._observeUsers();
});

View File

@@ -7,7 +7,7 @@ import type { UserDetails } from '@umbraco-cms/models';
import { UmbNotificationService, UMB_NOTIFICATION_SERVICE_CONTEXT_ALIAS } from 'src/core/notification';
import { UmbNotificationDefaultData } from 'src/core/notification/layouts/default';
import { UmbModalLayoutElement } from 'src/core/modal';
import { UmbUserStore } from 'src/backoffice/users/users/user.store';
import { UmbUserStore, UMB_USER_STORE_CONTEXT_ALIAS } from 'src/backoffice/users/users/user.store';
export type UsersViewType = 'list' | 'grid';
@customElement('umb-workspace-view-users-create')
@@ -67,7 +67,7 @@ export class UmbWorkspaceViewUsersCreateElement extends UmbModalLayoutElement {
this._notificationService = _instance;
});
this.consumeContext<UmbUserStore>('umbUserStore', (_instance) => {
this.consumeContext(UMB_USER_STORE_CONTEXT_ALIAS, (_instance) => {
this._userStore = _instance;
});
}

View File

@@ -4,7 +4,7 @@ import { customElement, query, state } from 'lit/decorators.js';
import { UmbInputPickerUserGroupElement } from 'src/auth/components/input-user-group/input-user-group.element';
import type { UserDetails } from '@umbraco-cms/models';
import { UmbModalLayoutElement } from 'src/core/modal';
import { UmbUserStore } from 'src/backoffice/users/users/user.store';
import { UmbUserStore, UMB_USER_STORE_CONTEXT_ALIAS } from 'src/backoffice/users/users/user.store';
export type UsersViewType = 'list' | 'grid';
@customElement('umb-workspace-view-users-invite')
@@ -58,7 +58,7 @@ export class UmbWorkspaceViewUsersInviteElement extends UmbModalLayoutElement {
connectedCallback(): void {
super.connectedCallback();
this.consumeContext('umbUserStore', (usersContext: UmbUserStore) => {
this.consumeContext(UMB_USER_STORE_CONTEXT_ALIAS, (usersContext) => {
this._userStore = usersContext;
});
}

View File

@@ -2,7 +2,7 @@ import { css, html } from 'lit';
import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
import { customElement, state } from 'lit/decorators.js';
import { UmbSectionViewUsersElement } from './section-view-users.element';
import { UmbUserStore } from 'src/backoffice/users/users/user.store';
import { UmbUserStore, UMB_USER_STORE_CONTEXT_ALIAS } from 'src/backoffice/users/users/user.store';
import { UmbLitElement } from '@umbraco-cms/element';
@customElement('umb-workspace-view-users-selection')
@@ -39,7 +39,7 @@ export class UmbWorkspaceViewUsersSelectionElement extends UmbLitElement {
this._observeSelection();
});
this.consumeContext('umbUserStore', (userStore: UmbUserStore) => {
this.consumeContext(UMB_USER_STORE_CONTEXT_ALIAS, (userStore) => {
this._userStore = userStore;
this._observeTotalUsers();
});

View File

@@ -2,9 +2,12 @@ import { map, Observable } from 'rxjs';
import { UmbDataStoreBase } from '../../../core/stores/store';
import type { UserDetails } from '@umbraco-cms/models';
import { UniqueBehaviorSubject } from '@umbraco-cms/observable-api';
import { UmbContextAlias } from '@umbraco-cms/context-api';
export type UmbUserStoreItemType = UserDetails;
export const STORE_ALIAS = 'umbUserStore';
/**
* @export
* @class UmbUserStore
@@ -12,7 +15,7 @@ export type UmbUserStoreItemType = UserDetails;
* @description - Data Store for Users
*/
export class UmbUserStore extends UmbDataStoreBase<UmbUserStoreItemType> {
public readonly storeAlias = 'umbUserStore';
public readonly storeAlias = STORE_ALIAS;
#totalUsers = new UniqueBehaviorSubject(0);
public readonly totalUsers = this.#totalUsers.asObservable();
@@ -276,3 +279,5 @@ export class UmbUserStore extends UmbDataStoreBase<UmbUserStoreItemType> {
// this.requestUpdate('users');
// }
}
export const UMB_USER_STORE_CONTEXT_ALIAS = new UmbContextAlias<UmbUserStore>(STORE_ALIAS);

View File

@@ -1,5 +1,9 @@
import { UmbWorkspaceContentContext } from '../../../shared/components/workspace/workspace-content/workspace-content.context';
import type { UmbUserStore, UmbUserStoreItemType } from 'src/backoffice/users/users/user.store';
import {
UmbUserStore,
UmbUserStoreItemType,
UMB_USER_STORE_CONTEXT_ALIAS,
} from 'src/backoffice/users/users/user.store';
import { UmbControllerHostInterface } from '@umbraco-cms/controller';
const DefaultDataTypeData = {
@@ -22,10 +26,10 @@ const DefaultDataTypeData = {
export class UmbWorkspaceUserContext extends UmbWorkspaceContentContext<UmbUserStoreItemType, UmbUserStore> {
constructor(host: UmbControllerHostInterface) {
super(host, DefaultDataTypeData, 'umbUserStore', 'user');
super(host, DefaultDataTypeData, UMB_USER_STORE_CONTEXT_ALIAS.toString(), 'user');
}
public setPropertyValue(alias: string, value: unknown) {
throw new Error("setPropertyValue is not implemented for UmbWorkspaceUserContext")
throw new Error('setPropertyValue is not implemented for UmbWorkspaceUserContext');
}
}

View File

@@ -3,7 +3,7 @@ import { css, html } from 'lit';
import { customElement, state } from 'lit/decorators.js';
import { UmbModalLayoutPickerBase } from '../modal-layout-picker-base';
import type { UserDetails } from '@umbraco-cms/models';
import { UmbUserStore } from 'src/backoffice/users/users/user.store';
import { UmbUserStore, UMB_USER_STORE_CONTEXT_ALIAS } from 'src/backoffice/users/users/user.store';
@customElement('umb-picker-layout-user')
export class UmbPickerLayoutUserElement extends UmbModalLayoutPickerBase {
@@ -65,7 +65,7 @@ export class UmbPickerLayoutUserElement extends UmbModalLayoutPickerBase {
connectedCallback(): void {
super.connectedCallback();
this.consumeContext('umbUserStore', (userStore: UmbUserStore) => {
this.consumeContext(UMB_USER_STORE_CONTEXT_ALIAS, (userStore) => {
this._userStore = userStore;
this._observeUsers();
});