From f4d262b294de4cc6a53dbfae618050e8581df201 Mon Sep 17 00:00:00 2001 From: Alex Andreev Date: Tue, 1 Sep 2020 10:36:44 +0300 Subject: [PATCH] Fixing app crash when iterating Events without 'kind' prop defined (#743) * Checking for 'kind' to be defined Inside 'involvedObject' of Event Signed-off-by: Alex Andreev * Fixing resource var definition Signed-off-by: Alex Andreev * Reverting to link rendering in Events Signed-off-by: Alex Andreev * Explicitly return emty link if no 'kind' available Signed-off-by: Alex Andreev * Removing lowercase of url path Signed-off-by: Alex Andreev --- src/renderer/api/kube-api-parse.ts | 4 +++- src/renderer/navigation.ts | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/renderer/api/kube-api-parse.ts b/src/renderer/api/kube-api-parse.ts index d5e61c2305..c4c93562cf 100644 --- a/src/renderer/api/kube-api-parse.ts +++ b/src/renderer/api/kube-api-parse.ts @@ -121,6 +121,8 @@ export function lookupApiLink(ref: IKubeObjectRef, parentObject: KubeObject): st namespace = parentObject.getNs() } = ref; + if (!kind) return ""; + // search in registered apis by 'kind' & 'apiVersion' const api = apiManager.getApi(api => api.kind === kind && api.apiVersionWithGroup == apiVersion) if (api) { @@ -129,7 +131,7 @@ export function lookupApiLink(ref: IKubeObjectRef, parentObject: KubeObject): st // lookup api by generated resource link const apiPrefixes = ["/apis", "/api"]; - const resource = kind.toLowerCase() + kind.endsWith("s") ? "es" : "s"; + const resource = kind.endsWith("s") ? `${kind.toLowerCase()}es` : `${kind.toLowerCase()}s`; for (const apiPrefix of apiPrefixes) { const apiLink = createKubeApiURL({ apiPrefix, apiVersion, name, namespace, resource }); if (apiManager.getApi(apiLink)) { diff --git a/src/renderer/navigation.ts b/src/renderer/navigation.ts index df738b1ef4..ce831feac4 100644 --- a/src/renderer/navigation.ts +++ b/src/renderer/navigation.ts @@ -69,6 +69,7 @@ export function getSelectedDetails() { } export function getDetailsUrl(details: string) { + if (!details) return ""; return getQueryString({ details: details, selected: getSelectedDetails(),