From 74b2655fc2f710e4f10ffb6d11f161fa4fea8e62 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 21 Feb 2023 10:43:34 +0100 Subject: [PATCH] prevent having no default language + show message if changing the default language --- .../edit-language-workspace-view.element.ts | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/views/edit/edit-language-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/views/edit/edit-language-workspace-view.element.ts index 9aee2c7b4a..5cca4e0ca2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/views/edit/edit-language-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/views/edit/edit-language-workspace-view.element.ts @@ -45,18 +45,28 @@ export class UmbEditLanguageWorkspaceViewElement extends UmbLitElement { _language?: LanguageModel; @state() - private _startData: LanguageModel | null = null; + _isDefaultLanguage = false; #languageWorkspaceContext?: UmbLanguageWorkspaceContext; constructor() { super(); + let initialStateSet = false; + this.consumeContext('umbWorkspaceContext', (instance) => { this.#languageWorkspaceContext = instance; this.observe(this.#languageWorkspaceContext.data, (language) => { this._language = language; + + /* Store the initial value of the default language. + When we change the default language we get notified of the change, + and we need the initial value to compare against */ + if (initialStateSet === false) { + this._isDefaultLanguage = language?.isDefault ?? false; + initialStateSet = true; + } }); }); } @@ -111,14 +121,6 @@ export class UmbEditLanguageWorkspaceViewElement extends UmbLitElement { } } - #renderDefaultLanguageWarning() { - if (this._startData?.isDefault || this._language?.isDefault !== true) return nothing; - - return html`
- Switching default language may result in default content missing. -
`; - } - render() { if (!this._language) return nothing; @@ -140,7 +142,7 @@ export class UmbEditLanguageWorkspaceViewElement extends UmbLitElement {
@@ -148,7 +150,14 @@ export class UmbEditLanguageWorkspaceViewElement extends UmbLitElement {
An Umbraco site can only have one default language set.
- ${this.#renderDefaultLanguageWarning()} + + + ${this._language.isDefault !== this._isDefaultLanguage + ? html`
+ Switching default language may result in default content missing. +
` + : nothing} +