1
0
mirror of https://github.com/lensapp/lens.git synced 2024-09-20 13:57:23 +03:00

Adding more control over extension preferences page title (#5901)

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2022-07-27 14:05:55 +03:00 committed by GitHub
parent 392d548bf0
commit e334a6aeda
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 47 additions and 33 deletions

View File

@ -172,10 +172,10 @@ exports[`preferences - navigation to extension specific preferences given in pre
<section
id="extensions"
>
<h2>
<h2
data-testid="extension-preferences-page-title"
>
Metrics tab
preferences
</h2>
<section
class="small"
@ -472,10 +472,10 @@ exports[`preferences - navigation to extension specific preferences given in pre
<section
id="extensions"
>
<h2>
<h2
data-testid="extension-preferences-page-title"
>
Metrics tab
preferences
</h2>
<section
class="small"
@ -772,10 +772,10 @@ exports[`preferences - navigation to extension specific preferences given in pre
<section
id="extensions"
>
<h2>
<h2
data-testid="extension-preferences-page-title"
>
Metrics tab
preferences
</h2>
<section
class="small"
@ -1095,10 +1095,10 @@ exports[`preferences - navigation to extension specific preferences given in pre
<section
id="extensions"
>
<h2>
some-test-extension-id
preferences
<h2
data-testid="extension-preferences-page-title"
>
some-test-extension-id preferences
</h2>
<section
class="small"
@ -2717,10 +2717,10 @@ exports[`preferences - navigation to extension specific preferences given in pre
<section
id="extensions"
>
<h2>
some-test-extension-id
preferences
<h2
data-testid="extension-preferences-page-title"
>
some-test-extension-id preferences
</h2>
<section
class="small"
@ -2994,9 +2994,10 @@ exports[`preferences - navigation to extension specific preferences given in pre
<section
id="extensions"
>
<h2>
preferences
<h2
data-testid="extension-preferences-page-title"
>
Extension preferences
</h2>
<div
class="flex items-center"
@ -3263,10 +3264,10 @@ exports[`preferences - navigation to extension specific preferences when navigat
<section
id="extensions"
>
<h2>
<h2
data-testid="extension-preferences-page-title"
>
Metrics tab
preferences
</h2>
<section
class="small"
@ -3551,10 +3552,10 @@ exports[`preferences - navigation to extension specific preferences when navigat
<section
id="extensions"
>
<h2>
extension-using-someone-else-tab-id
preferences
<h2
data-testid="extension-preferences-page-title"
>
extension-using-someone-else-tab-id preferences
</h2>
<section
class="small"

View File

@ -225,6 +225,18 @@ describe("preferences - navigation to extension specific preferences", () => {
expect(actual).not.toBeInTheDocument();
});
it("shows page title", () => {
const pageTitle = rendered.queryByTestId("extension-preferences-page-title");
expect(pageTitle).toBeInTheDocument();
});
it("shows page title same as tab title", () => {
const pageTitle = rendered.queryByTestId("extension-preferences-page-title");
const tabs = extensionStubWithWithRegisteredTab.appPreferenceTabs;
const tabTitle = tabs && tabs[0].title;
expect(pageTitle?.innerHTML).toBe(tabTitle);
});
});
});

View File

@ -21,10 +21,12 @@ const extensionPreferencesModelInjectable = getInjectable({
const { extensionId, tabId } = pathParameters.get();
const targetExtension = extensions.get().find((extension) => extension.sanitizedExtensionId === extensionId);
const targetAppTab = targetExtension?.appPreferenceTabs.find(tab => tab.id === tabId);
const preferencePageTitle = targetAppTab?.title || `${targetExtension?.manifest.name || "Extension"} preferences`;
return {
extensionName: targetAppTab?.title ?? targetExtension?.manifest.name,
extensionName: targetExtension?.manifest.name,
preferenceItems: getExtensionPreferenceItems(targetExtension, tabId),
preferencePageTitle,
};
});
},

View File

@ -16,19 +16,18 @@ interface Dependencies {
model: IComputedValue<{
preferenceItems: RegisteredAppPreference[];
extensionName?: string;
preferencePageTitle?: string;
}>;
}
const NonInjectedExtensions = ({ model }: Dependencies) => {
const { extensionName, preferenceItems } = model.get();
const { extensionName, preferenceItems, preferencePageTitle } = model.get();
return (
<Preferences data-testid="extension-preferences-page">
<section id="extensions">
<h2>
{extensionName}
{" "}
preferences
<h2 data-testid="extension-preferences-page-title">
{preferencePageTitle}
</h2>
{!extensionName && (
<div