From 8d52c43a71a210ef14c1a12d990c6a73ea5b078d Mon Sep 17 00:00:00 2001 From: Lauri Nevala Date: Mon, 3 Jan 2022 16:48:35 +0200 Subject: [PATCH] Refactor showing error notification Signed-off-by: Lauri Nevala --- .../create-temp-files-and-validate.tsx | 40 +++++++++++-------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/renderer/components/+extensions/attempt-install/create-temp-files-and-validate/create-temp-files-and-validate.tsx b/src/renderer/components/+extensions/attempt-install/create-temp-files-and-validate/create-temp-files-and-validate.tsx index fa32c9fe97..27a7f1f327 100644 --- a/src/renderer/components/+extensions/attempt-install/create-temp-files-and-validate/create-temp-files-and-validate.tsx +++ b/src/renderer/components/+extensions/attempt-install/create-temp-files-and-validate/create-temp-files-and-validate.tsx @@ -63,7 +63,9 @@ export async function createTempFilesAndValidate({ const manifest = await validatePackage(tempFile); if (!isCompatibleExtension(manifest)){ - throw new Error("Incompatible extension"); + displayError(fileName, { message: "Incompatible extension" }); + + return null; } const id = path.join( @@ -80,27 +82,31 @@ export async function createTempFilesAndValidate({ id, }; } catch (error) { - const message = getMessageFromError(error); - - logger.info( - `[EXTENSION-INSTALLATION]: installing ${fileName} has failed: ${message}`, - { error }, - ); - Notifications.error( -
-

- Installing {fileName} has failed, skipping. -

-

- Reason: {message} -

-
, - ); + displayError(fileName, error); } return null; } +function displayError(fileName: string, error: any) { + const message = getMessageFromError(error); + + logger.info( + `[EXTENSION-INSTALLATION]: installing ${fileName} has failed: ${message}`, + { error }, + ); + Notifications.error( +
+

+ Installing {fileName} has failed, skipping. +

+

+ Reason: {message} +

+
, + ); +} + function getExtensionPackageTemp(fileName = "") { return path.join(os.tmpdir(), "lens-extensions", fileName);