From 1fd42e58946fb3954ab9166139dd72a78f85bb9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20M=C3=B8ller=20Jensen?= <26099018+JesmoDev@users.noreply.github.com> Date: Wed, 18 Jan 2023 04:30:05 +0100 Subject: [PATCH] move get all languages to store --- .../settings/languages/language.store.ts | 12 ++++++++++- .../language-root-workspace.element.ts | 21 +++++++++++-------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/language.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/language.store.ts index b10d51a866..ed8360dc08 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/language.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/language.store.ts @@ -1,7 +1,7 @@ import { map, Observable } from 'rxjs'; import { UmbDataStoreBase } from '../../../core/stores/store'; import type { DataTypeDetails, LanguageDetails } from '@umbraco-cms/models'; -import { DataTypeResource, FolderTreeItem } from '@umbraco-cms/backend-api'; +import { DataTypeResource, FolderTreeItem, LanguageResource } from '@umbraco-cms/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/resources'; export type UmbLanguageStoreItemType = LanguageDetails; @@ -35,6 +35,16 @@ export class UmbLanguageStore extends UmbDataStoreBase return this.items.pipe(map((dataTypes) => dataTypes.find((dataType) => dataType.key === key) || null)); } + getAll(): Observable> { + tryExecuteAndNotify(this.host, LanguageResource.getLanguage({ skip: 0, take: 100 })).then(({ data }) => { + if (data) { + this.updateItems(data.items as Array); + } + }); + + return this.items; + } + save(): Promise { return new Promise((resolve, reject) => ''); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language-root/language-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language-root/language-root-workspace.element.ts index 73ead03877..a85f13da1f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language-root/language-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language-root/language-root-workspace.element.ts @@ -12,6 +12,7 @@ import { UmbTableItem, UmbTableSelectedEvent, } from 'src/backoffice/shared/components/table'; +import { UmbLanguageStore } from '../../language.store'; import '../language/language-workspace.element'; import './language-root-table-delete-column-layout.element'; @@ -109,20 +110,22 @@ export class UmbLanguageRootWorkspaceElement extends UmbLitElement { @state() private _tableItems: Array = []; + private _languageStore?: UmbLanguageStore; + constructor() { super(); - this._getLanguageData(); + this.consumeContext('umbLanguageStore', (instance) => { + this._languageStore = instance; + this._observeLanguages(); + }); } - //TODO: Move this code to the language store - private async _getLanguageData() { - const { data } = await tryExecuteAndNotify(this, LanguageResource.getLanguage({ skip: 0, take: 10 })); - if (data) { - this._languages = data.items as Array; - this._createTableItems(this._languages); - console.log('LANGS', this._languages); - } + private _observeLanguages() { + this._languageStore?.getAll().subscribe((languages) => { + this._languages = languages; + this._createTableItems(languages); + }); } private _createTableItems(languages: Array) {