From 75aee7e4fdd40008356cc4db599d1b92837d68b1 Mon Sep 17 00:00:00 2001 From: Iku-turso Date: Wed, 30 Nov 2022 11:37:18 +0200 Subject: [PATCH] Make preferences from extensions using tabs "application" and "telemetry" appear as last (#6674) --- ...n-to-application-preferences.test.tsx.snap | 62 +++++++++---------- ...gation-to-application-preferences.test.tsx | 4 +- ...trator-for-preference-items.injectable.tsx | 10 ++- 3 files changed, 41 insertions(+), 35 deletions(-) diff --git a/src/features/preferences/__snapshots__/navigation-to-application-preferences.test.tsx.snap b/src/features/preferences/__snapshots__/navigation-to-application-preferences.test.tsx.snap index de9a302163..dfc4a1355d 100644 --- a/src/features/preferences/__snapshots__/navigation-to-application-preferences.test.tsx.snap +++ b/src/features/preferences/__snapshots__/navigation-to-application-preferences.test.tsx.snap @@ -861,37 +861,6 @@ exports[`preferences - navigation to application preferences given in preference > Application -
-
-
- Some application-preference item - -
-
-
-
-
-
-
-
-
@@ -1307,6 +1276,37 @@ exports[`preferences - navigation to application preferences given in preference
+
+
+
+
+ Some application-preference item + +
+
+
+
+
+
+
+
{ expect(rendered.container).toMatchSnapshot(); }); - it("shows preference items of the extension", () => { + it("shows preference items of the extension as last", () => { const { attributeValues } = discover.queryAllElements("preference-item"); - expect(attributeValues).toContain("preference-item-for-extension-some-test-extension-name-item-some-application-preference-item-id"); + expect(attributeValues.at(-1)).toBe("preference-item-for-extension-some-test-extension-name-item-some-application-preference-item-id"); }); }); }); diff --git a/src/features/preferences/renderer/compliance-for-legacy-extension-api/registrator-for-preference-items.injectable.tsx b/src/features/preferences/renderer/compliance-for-legacy-extension-api/registrator-for-preference-items.injectable.tsx index 351fc7a893..c69ee37e80 100644 --- a/src/features/preferences/renderer/compliance-for-legacy-extension-api/registrator-for-preference-items.injectable.tsx +++ b/src/features/preferences/renderer/compliance-for-legacy-extension-api/registrator-for-preference-items.injectable.tsx @@ -113,6 +113,12 @@ const registratorForPreferenceItemsInjectable = getInjectable({ const items = extension.appPreferences.map((registration, i) => { const itemId = `${commonId}-item-${registration.id ?? i}`; + const itemIsInSpecialTab = + registration.showInPreferencesTab && + ["telemetry", "application"].includes( + registration.showInPreferencesTab, + ); + return getInjectable({ id: itemId, @@ -122,12 +128,12 @@ const registratorForPreferenceItemsInjectable = getInjectable({ // Note: Legacy extensions considered telemetry and application as magic strings, and so does this code parentId: registration.showInPreferencesTab - ? ["telemetry", "application"].includes(registration.showInPreferencesTab) + ? itemIsInSpecialTab ? `${registration.showInPreferencesTab}-page` : `${commonId}-additional-page-${registration.showInPreferencesTab}` : primaryPageId, - orderNumber: i * 10, + orderNumber: i * 10 + (itemIsInSpecialTab ? 1000 : 0), Component: () => (