Skip to content

Commit 95ca2fa

Browse files
committed
Group obsolete extensions
1 parent 2bbfb52 commit 95ca2fa

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/screens/Extensions.tsx

+9-2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ const allLangs: string[] = [];
4040
function groupExtensions(extensions: IExtension[]): GroupedExtensionsResult {
4141
allLangs.length = 0; // empty the array
4242
const sortedExtenions: GroupedExtensions = {
43+
[ExtensionState.OBSOLETE]: [],
4344
[ExtensionState.INSTALLED]: [],
4445
[ExtensionState.UPDATE_PENDING]: [],
4546
[DefaultLanguage.ALL]: [],
@@ -56,16 +57,22 @@ function groupExtensions(extensions: IExtension[]): GroupedExtensionsResult {
5657
if (extension.installed) {
5758
if (extension.hasUpdate) {
5859
sortedExtenions[ExtensionState.UPDATE_PENDING].push(extension);
59-
} else {
60-
sortedExtenions[ExtensionState.INSTALLED].push(extension);
60+
return;
6161
}
62+
if (extension.obsolete) {
63+
sortedExtenions[ExtensionState.OBSOLETE].push(extension);
64+
return;
65+
}
66+
67+
sortedExtenions[ExtensionState.INSTALLED].push(extension);
6268
} else {
6369
sortedExtenions[extension.lang].push(extension);
6470
}
6571
});
6672

6773
allLangs.sort(langSortCmp);
6874
const result: GroupedExtensionsResult<ExtensionState | DefaultLanguage | string> = [
75+
[ExtensionState.OBSOLETE, sortedExtenions[ExtensionState.OBSOLETE]],
6976
[ExtensionState.UPDATE_PENDING, sortedExtenions[ExtensionState.UPDATE_PENDING]],
7077
[ExtensionState.INSTALLED, sortedExtenions[ExtensionState.INSTALLED]],
7178
[DefaultLanguage.ALL, sortedExtenions[DefaultLanguage.ALL]],

src/screens/util/Extensions.ts

+3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { DefaultLanguage, langCodeToName } from '@/util/language';
1313
export enum ExtensionState {
1414
INSTALLED = 'INSTALLED',
1515
UPDATE_PENDING = 'UPDATE_PENDING',
16+
OBSOLETE = 'OBSOLETE',
1617
}
1718

1819
export type GroupedExtensionsResult<KEY extends string = string> = [KEY, IExtension[]][];
@@ -32,6 +33,7 @@ export type GroupedExtensions = GroupedByExtensionState & GroupedByLanguage;
3233
export const extensionLanguageToTranslationKey: { [state in ExtensionState | DefaultLanguage]: TranslationKey } = {
3334
[ExtensionState.INSTALLED]: 'extension.state.label.installed',
3435
[ExtensionState.UPDATE_PENDING]: 'extension.state.label.update_pending',
36+
[ExtensionState.OBSOLETE]: 'extension.state.label.obsolete',
3537
[DefaultLanguage.ALL]: 'extension.language.all',
3638
[DefaultLanguage.OTHER]: 'extension.language.other',
3739
[DefaultLanguage.LOCAL_SOURCE]: 'source.local_source.title',
@@ -41,6 +43,7 @@ export const isExtensionStateOrLanguage = (languageCode: string): boolean =>
4143
[
4244
ExtensionState.INSTALLED,
4345
ExtensionState.UPDATE_PENDING,
46+
ExtensionState.OBSOLETE,
4447
DefaultLanguage.ALL,
4548
DefaultLanguage.OTHER,
4649
DefaultLanguage.LOCAL_SOURCE,

0 commit comments

Comments
 (0)