From 07422fa5a7e59eabcce3b9e5742cf05e484561c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 20 Dec 2022 16:01:11 +0100 Subject: [PATCH] user action --- .../workspace-action-user-save.element.ts | 38 +++++++------------ 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/user/actions/workspace-action-user-save.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/user/actions/workspace-action-user-save.element.ts index f8b7d59161..996ad7a2f8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/user/actions/workspace-action-user-save.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/workspaces/user/actions/workspace-action-user-save.element.ts @@ -2,11 +2,7 @@ import { css, html, LitElement } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; import type { UUIButtonState } from '@umbraco-ui/uui'; -import type { UmbUserStore } from '../../../../core/stores/user/user.store'; -import type { UmbUserContext } from '../user.context'; - -import type { UmbNotificationDefaultData } from '../../../../core/services/notification/layouts/default'; -import type { UmbNotificationService } from '../../../../core/services/notification'; +import { UmbWorkspaceUserContext } from '../workspace-user.context'; import { UmbContextConsumerMixin } from '@umbraco-cms/context-api'; @customElement('umb-workspace-action-user-save') @@ -16,34 +12,26 @@ export class UmbWorkspaceActionUserSaveElement extends UmbContextConsumerMixin(L @state() private _saveButtonState?: UUIButtonState; - private _userStore?: UmbUserStore; - private _userContext?: UmbUserContext; - private _notificationService?: UmbNotificationService; + private _workspaceContext?: UmbWorkspaceUserContext; - connectedCallback(): void { - super.connectedCallback(); + constructor() { + super(); - this.consumeAllContexts(['umbUserStore', 'umbUserContext', 'umbNotificationService'], (instances) => { - this._userStore = instances['umbUserStore']; - this._userContext = instances['umbUserContext']; - this._notificationService = instances['umbNotificationService']; - }); + this.consumeContext('umbWorkspaceContext', (instance) => { + this._workspaceContext = instance; + } + ); } private async _handleSave() { - // TODO: What if store is not present, what if node is not loaded.... - if (!this._userStore || !this._userContext) return; + if (!this._workspaceContext) return; - try { - this._saveButtonState = 'waiting'; - const user = this._userContext.getData(); - await this._userStore.save([user]); - const data: UmbNotificationDefaultData = { message: 'User Saved' }; - this._notificationService?.peek('positive', { data }); + this._saveButtonState = 'waiting'; + await this._workspaceContext.save().then(() => { this._saveButtonState = 'success'; - } catch (error) { + }).catch(() => { this._saveButtonState = 'failed'; - } + }) } render() {