From ffe073a962d8c193b9e74ab6fafde0f3e1ee8b89 Mon Sep 17 00:00:00 2001 From: Laura Neto <12862535+lauraneto@users.noreply.github.com> Date: Tue, 20 May 2025 13:43:00 +0200 Subject: [PATCH 1/2] Sort available composition folders --- .../composition-picker/composition-picker-modal.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.ts index e0cf37273d21..76092d05ed30 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.ts @@ -111,7 +111,7 @@ export class UmbCompositionPickerModalElement extends UmbModalBaseElement< if (!data) return; - const folders = Array.from(new Set(data.map((c) => '/' + c.folderPath.join('/')))); + const folders = Array.from(new Set(data.map((c) => '/' + c.folderPath.join('/')))).sort(); this._compatibleCompositions = folders.map((path) => ({ path, compositions: data.filter((c) => '/' + c.folderPath.join('/') === path), From 1018671894da7be8083ab8d22a83c01751ca614d Mon Sep 17 00:00:00 2001 From: Laura Neto <12862535+lauraneto@users.noreply.github.com> Date: Tue, 20 May 2025 14:34:30 +0200 Subject: [PATCH 2/2] Optimizations --- .../composition-picker-modal.element.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.ts index 76092d05ed30..7bdd24222dda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.ts @@ -111,11 +111,12 @@ export class UmbCompositionPickerModalElement extends UmbModalBaseElement< if (!data) return; - const folders = Array.from(new Set(data.map((c) => '/' + c.folderPath.join('/')))).sort(); - this._compatibleCompositions = folders.map((path) => ({ - path, - compositions: data.filter((c) => '/' + c.folderPath.join('/') === path), - })); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error + const grouped = Object.groupBy(data, (item) => '/' + item.folderPath.join('/')); + this._compatibleCompositions = Object.keys(grouped) + .sort((a, b) => a.localeCompare(b)) + .map((key) => ({ path: key, compositions: grouped[key] })); } #onSelectionAdd(unique: string) {