1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Make preferences from extensions using tabs "application" and "telemetry" appear as last (#6674)

This commit is contained in:
Iku-turso 2022-11-30 11:37:18 +02:00 committed by GitHub
parent 1e0094bd8e
commit 75aee7e4fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 35 deletions

View File

@ -861,37 +861,6 @@ exports[`preferences - navigation to application preferences given in preference
> >
Application Application
</h2> </h2>
<div
data-preference-item-test="preference-item-for-extension-some-test-extension-name-item-some-application-preference-item-id"
>
<section
class="small"
id="some-application-preference-item-id"
>
<div
class="SubTitle"
>
Some application-preference item
</div>
<div
data-testid="some-preference-item-input"
/>
<div
class="hint"
>
<div
data-testid="some-preference-item-hint"
/>
</div>
</section>
<hr
class="small"
/>
</div>
<div
class="HorizontalLine size-xl"
/>
<div <div
data-preference-item-test="theme" data-preference-item-test="theme"
> >
@ -1307,6 +1276,37 @@ exports[`preferences - navigation to application preferences given in preference
</div> </div>
</section> </section>
</div> </div>
<div
class="HorizontalLine size-xl"
/>
<div
data-preference-item-test="preference-item-for-extension-some-test-extension-name-item-some-application-preference-item-id"
>
<section
class="small"
id="some-application-preference-item-id"
>
<div
class="SubTitle"
>
Some application-preference item
</div>
<div
data-testid="some-preference-item-input"
/>
<div
class="hint"
>
<div
data-testid="some-preference-item-hint"
/>
</div>
</section>
<hr
class="small"
/>
</div>
</section> </section>
</div> </div>
<div <div

View File

@ -56,11 +56,11 @@ describe("preferences - navigation to application preferences", () => {
expect(rendered.container).toMatchSnapshot(); expect(rendered.container).toMatchSnapshot();
}); });
it("shows preference items of the extension", () => { it("shows preference items of the extension as last", () => {
const { attributeValues } = const { attributeValues } =
discover.queryAllElements("preference-item"); 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");
}); });
}); });
}); });

View File

@ -113,6 +113,12 @@ const registratorForPreferenceItemsInjectable = getInjectable({
const items = extension.appPreferences.map((registration, i) => { const items = extension.appPreferences.map((registration, i) => {
const itemId = `${commonId}-item-${registration.id ?? i}`; const itemId = `${commonId}-item-${registration.id ?? i}`;
const itemIsInSpecialTab =
registration.showInPreferencesTab &&
["telemetry", "application"].includes(
registration.showInPreferencesTab,
);
return getInjectable({ return getInjectable({
id: itemId, id: itemId,
@ -122,12 +128,12 @@ const registratorForPreferenceItemsInjectable = getInjectable({
// Note: Legacy extensions considered telemetry and application as magic strings, and so does this code // Note: Legacy extensions considered telemetry and application as magic strings, and so does this code
parentId: registration.showInPreferencesTab parentId: registration.showInPreferencesTab
? ["telemetry", "application"].includes(registration.showInPreferencesTab) ? itemIsInSpecialTab
? `${registration.showInPreferencesTab}-page` ? `${registration.showInPreferencesTab}-page`
: `${commonId}-additional-page-${registration.showInPreferencesTab}` : `${commonId}-additional-page-${registration.showInPreferencesTab}`
: primaryPageId, : primaryPageId,
orderNumber: i * 10, orderNumber: i * 10 + (itemIsInSpecialTab ? 1000 : 0),
Component: () => ( Component: () => (
<ExtensionPreferenceBlock registration={registration} /> <ExtensionPreferenceBlock registration={registration} />