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

Show 'No extension found' visual error

instead of throwing an error in injectable

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2022-06-21 13:51:36 +03:00
parent ac926ce75b
commit 42112a1c03
3 changed files with 10 additions and 7 deletions

View File

@ -21,12 +21,8 @@ const extensionPreferencesModelInjectable = getInjectable({
const { extensionId, tabId } = pathParameters.get(); const { extensionId, tabId } = pathParameters.get();
const targetExtension = extensions.get().find((extension) => extension.sanitizedExtensionId === extensionId); const targetExtension = extensions.get().find((extension) => extension.sanitizedExtensionId === extensionId);
if (!targetExtension) {
throw new Error("Tried to get extension preferences for extension that does not exist.");
}
return { return {
extensionName: targetExtension.manifest.name, extensionName: targetExtension?.manifest.name,
preferenceItems: getExtensionPreferenceItems(targetExtension, tabId), preferenceItems: getExtensionPreferenceItems(targetExtension, tabId),
}; };
}); });

View File

@ -13,7 +13,7 @@ import { Preferences } from "./preferences";
interface Dependencies { interface Dependencies {
preferenceItems: RegisteredAppPreference[]; preferenceItems: RegisteredAppPreference[];
extensionName: string; extensionName?: string;
} }
const NonInjectedExtensions = ({ preferenceItems, extensionName }: Dependencies) => ( const NonInjectedExtensions = ({ preferenceItems, extensionName }: Dependencies) => (
@ -24,6 +24,9 @@ const NonInjectedExtensions = ({ preferenceItems, extensionName }: Dependencies)
{" "} {" "}
preferences preferences
</h2> </h2>
{!extensionName && (
<div className="flex items-center">No extension found</div>
)}
{preferenceItems.map((preferenceItem, index) => ( {preferenceItems.map((preferenceItem, index) => (
<ExtensionSettings <ExtensionSettings
key={`${preferenceItem.id}-${index}`} key={`${preferenceItem.id}-${index}`}

View File

@ -6,7 +6,11 @@
import type { LensRendererExtension } from "../../../extensions/lens-renderer-extension"; import type { LensRendererExtension } from "../../../extensions/lens-renderer-extension";
import type { RegisteredAppPreference } from "./app-preferences/app-preference-registration"; import type { RegisteredAppPreference } from "./app-preferences/app-preference-registration";
export function getExtensionPreferenceItems(extension: LensRendererExtension, tabId?: string): RegisteredAppPreference[] { export function getExtensionPreferenceItems(extension?: LensRendererExtension, tabId?: string): RegisteredAppPreference[] {
if (!extension) {
return [];
}
const preferences = extension.appPreferences.map(preference => ({ const preferences = extension.appPreferences.map(preference => ({
id: preference.id || preference.title, id: preference.id || preference.title,
...preference, ...preference,