From a7093d962aadb6886edaab3bcf247d161bb45fc5 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Thu, 8 Apr 2021 19:06:34 -0400 Subject: [PATCH] display error when registry returns not found as JSON Signed-off-by: Sebastian Malton --- src/renderer/components/+extensions/extensions.tsx | 10 ++++------ .../components/confirm-dialog/confirm-dialog.tsx | 12 ++++++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/renderer/components/+extensions/extensions.tsx b/src/renderer/components/+extensions/extensions.tsx index 6d24050bd0..e5851d0919 100644 --- a/src/renderer/components/+extensions/extensions.tsx +++ b/src/renderer/components/+extensions/extensions.tsx @@ -269,14 +269,12 @@ export async function attemptInstallByInfo({ name, version, requireConfirmation const disposer = ExtensionInstallationStateStore.startPreInstall(); const registryUrl = new URLParse("https://registry.npmjs.com").set("pathname", name).toString(); const { promise } = downloadJson({ url: registryUrl }); + const json = await promise.catch(console.error); - let json; + if (!json || json.error || typeof json.values !== "object" || !json.values) { + const message = json?.error ? `: ${json.error}` : ""; - try { - json = await promise; - } catch (error) { - console.error(error); - Notifications.error("Failed to get registry information for that extension"); + Notifications.error(`Failed to get registry information for that extension${message}`); return disposer(); } diff --git a/src/renderer/components/confirm-dialog/confirm-dialog.tsx b/src/renderer/components/confirm-dialog/confirm-dialog.tsx index dd03555433..0c29b40c02 100644 --- a/src/renderer/components/confirm-dialog/confirm-dialog.tsx +++ b/src/renderer/components/confirm-dialog/confirm-dialog.tsx @@ -19,11 +19,10 @@ export interface ConfirmDialogParams extends ConfirmDialogBooleanParams { export interface ConfirmDialogBooleanParams { labelOk?: ReactNode; labelCancel?: ReactNode; - message?: ReactNode; + message: ReactNode; icon?: ReactNode; - okButtonProps?: Partial - cancelButtonProps?: Partial - + okButtonProps?: Partial; + cancelButtonProps?: Partial; } @observer @@ -48,15 +47,16 @@ export class ConfirmDialog extends React.Component { }); } - public defaultParams: ConfirmDialogParams = { + static defaultParams: Partial = { ok: noop, + cancel: noop, labelOk: "Ok", labelCancel: "Cancel", icon: , }; get params(): ConfirmDialogParams { - return Object.assign({}, this.defaultParams, ConfirmDialog.params); + return Object.assign({}, ConfirmDialog.defaultParams, ConfirmDialog.params); } ok = async () => {