From 18e0e9069d33434a2dfc203727f57e50d105ffb0 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Sat, 10 May 2025 02:12:04 +0200 Subject: [PATCH] Sort "obsolete" extensions at the start Regression 87a496cec0f9b13532f2e08026ebb29c1f47744d --- src/modules/extension/Extensions.utils.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/modules/extension/Extensions.utils.ts b/src/modules/extension/Extensions.utils.ts index ecb83806..91407310 100644 --- a/src/modules/extension/Extensions.utils.ts +++ b/src/modules/extension/Extensions.utils.ts @@ -79,10 +79,18 @@ export function groupExtensionsByLanguage(extensions: TExtension[]): GroupedExte const extensionsBySortedLanguage = Object.entries(extensionsByLanguage).toSorted(([a], [b]) => { const extensionGroupStates = Object.values(ExtensionGroupState); - if (extensionGroupStates.includes(a as ExtensionGroupState)) { + const isAState = extensionGroupStates.includes(a as ExtensionGroupState); + const isAObsolete = ExtensionGroupState.OBSOLETE === a; + const isAUpdatable = ExtensionGroupState.UPDATE_PENDING === a; + + const isBState = extensionGroupStates.includes(b as ExtensionGroupState); + const isBObsolete = ExtensionGroupState.OBSOLETE === b; + const isBUpdatable = ExtensionGroupState.UPDATE_PENDING === b; + + if (isAObsolete || (isAState && !isBState) || (isAUpdatable && !isBObsolete)) { return -1; } - if (extensionGroupStates.includes(b as ExtensionGroupState)) { + if (isBObsolete || (!isAState && isBState) || (!isAUpdatable && isBUpdatable)) { return 1; }