From 741009934dada21f9200093e34926313c159010e Mon Sep 17 00:00:00 2001 From: andrei Date: Tue, 1 Jul 2025 13:11:18 +0200 Subject: [PATCH 1/8] refactor: formatting commit --- vis/js/HeadstartRunner.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/vis/js/HeadstartRunner.tsx b/vis/js/HeadstartRunner.tsx index ee9d3ac0c..554532997 100644 --- a/vis/js/HeadstartRunner.tsx +++ b/vis/js/HeadstartRunner.tsx @@ -67,6 +67,7 @@ class HeadstartRunner { checkBrowserVersion() { const browser = Bowser.getParser(window.navigator.userAgent); + // TODO use proper browser filtering https://www.npmjs.com/package/bowser#filtering-browsers if ( !["chrome", "firefox", "safari"].includes(browser.getBrowserName(true)) @@ -160,10 +161,7 @@ class HeadstartRunner { addWindowResizeListener() { window.addEventListener("resize", () => { const chart = getChartSize(this.config); - const list = getListSize( - this.config, - chart.size - ); + const list = getListSize(this.config, chart.size); this.store.dispatch(updateDimensions(chart, list)); }); } @@ -195,7 +193,12 @@ class HeadstartRunner { elem?.dispatchEvent(event); } - rescaleMap(scaleBy: string, baseUnit: string, isContentBased: boolean, initialSort: string) { + rescaleMap( + scaleBy: string, + baseUnit: string, + isContentBased: boolean, + initialSort: string + ) { this.config.scale_by = scaleBy; this.config.base_unit = baseUnit; this.config.content_based = isContentBased; From 51541db1571476724874c3ecb7a79139f4971f9d Mon Sep 17 00:00:00 2001 From: andrei Date: Tue, 1 Jul 2025 13:11:39 +0200 Subject: [PATCH 2/8] refactor: checkBrowserVersion as private method --- vis/js/HeadstartRunner.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vis/js/HeadstartRunner.tsx b/vis/js/HeadstartRunner.tsx index 554532997..b4d8ae8c7 100644 --- a/vis/js/HeadstartRunner.tsx +++ b/vis/js/HeadstartRunner.tsx @@ -65,7 +65,7 @@ class HeadstartRunner { this.addWindowResizeListener(); } - checkBrowserVersion() { + private checkBrowserVersion() { const browser = Bowser.getParser(window.navigator.userAgent); // TODO use proper browser filtering https://www.npmjs.com/package/bowser#filtering-browsers From 143ea6843871423cbc70a7d566d42c5222c8b021 Mon Sep 17 00:00:00 2001 From: andrei Date: Tue, 1 Jul 2025 13:21:58 +0200 Subject: [PATCH 3/8] refactor: supported browsers in the separate list --- vis/js/HeadstartRunner.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/vis/js/HeadstartRunner.tsx b/vis/js/HeadstartRunner.tsx index b4d8ae8c7..2343899fe 100644 --- a/vis/js/HeadstartRunner.tsx +++ b/vis/js/HeadstartRunner.tsx @@ -66,11 +66,14 @@ class HeadstartRunner { } private checkBrowserVersion() { - const browser = Bowser.getParser(window.navigator.userAgent); + const SUPPORTED = ["Chrome", "Firefox", "Safari", "Edge", "Opera"] as const; + const browser = Bowser.getParser(window.navigator.userAgent); // TODO use proper browser filtering https://www.npmjs.com/package/bowser#filtering-browsers if ( - !["chrome", "firefox", "safari"].includes(browser.getBrowserName(true)) + !SUPPORTED.map((browserName) => browserName.toLocaleLowerCase()).includes( + browser.getBrowserName(true) + ) ) { alert( "You are using an unsupported browser. " + From a612855d7711facdaf2c2fc527d87bc51527a531 Mon Sep 17 00:00:00 2001 From: andrei Date: Tue, 1 Jul 2025 13:22:51 +0200 Subject: [PATCH 4/8] refactor: new supported browsers and warning message --- vis/js/HeadstartRunner.tsx | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/vis/js/HeadstartRunner.tsx b/vis/js/HeadstartRunner.tsx index 2343899fe..cb28d043a 100644 --- a/vis/js/HeadstartRunner.tsx +++ b/vis/js/HeadstartRunner.tsx @@ -69,17 +69,20 @@ class HeadstartRunner { const SUPPORTED = ["Chrome", "Firefox", "Safari", "Edge", "Opera"] as const; const browser = Bowser.getParser(window.navigator.userAgent); - // TODO use proper browser filtering https://www.npmjs.com/package/bowser#filtering-browsers - if ( - !SUPPORTED.map((browserName) => browserName.toLocaleLowerCase()).includes( - browser.getBrowserName(true) - ) - ) { - alert( + const browserName = browser.getBrowserName(true); + + const isSupportedBrowser = SUPPORTED.map((browserName) => + browserName.toLowerCase() + ).includes(browserName); + + if (!isSupportedBrowser || !browserName) { + const warningMessage = "You are using an unsupported browser. " + - "This visualization was successfully tested " + - "with the latest versions of Chrome, Firefox and Safari." - ); + "This visualization was successfully tested " + + "with the latest versions of " + + `${SUPPORTED.slice(0, -1).join(", ")} and ${SUPPORTED.at(-1)}.`; + + alert(warningMessage); } } From c548f089941bc15e66483f01cbfcdd016815d033 Mon Sep 17 00:00:00 2001 From: andrei Date: Tue, 1 Jul 2025 13:52:29 +0200 Subject: [PATCH 5/8] refactor: more clear function name --- vis/js/HeadstartRunner.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vis/js/HeadstartRunner.tsx b/vis/js/HeadstartRunner.tsx index cb28d043a..1ec6e3501 100644 --- a/vis/js/HeadstartRunner.tsx +++ b/vis/js/HeadstartRunner.tsx @@ -55,7 +55,7 @@ class HeadstartRunner { } async run() { - this.checkBrowserVersion(); + this.checkIsSupportedBrowser(); this.renderReact(); this.addBackButtonListener(); this.backendData = await this.fetchData(); @@ -65,7 +65,7 @@ class HeadstartRunner { this.addWindowResizeListener(); } - private checkBrowserVersion() { + private checkIsSupportedBrowser() { const SUPPORTED = ["Chrome", "Firefox", "Safari", "Edge", "Opera"] as const; const browser = Bowser.getParser(window.navigator.userAgent); From a11eefe52d05f2350e1a2a8162a1a93222fabaf5 Mon Sep 17 00:00:00 2001 From: andrei Date: Tue, 1 Jul 2025 17:09:02 +0200 Subject: [PATCH 6/8] fix: Edge browser name --- vis/js/HeadstartRunner.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/vis/js/HeadstartRunner.tsx b/vis/js/HeadstartRunner.tsx index 1ec6e3501..71b23a0e8 100644 --- a/vis/js/HeadstartRunner.tsx +++ b/vis/js/HeadstartRunner.tsx @@ -66,7 +66,13 @@ class HeadstartRunner { } private checkIsSupportedBrowser() { - const SUPPORTED = ["Chrome", "Firefox", "Safari", "Edge", "Opera"] as const; + const SUPPORTED = [ + "Chrome", + "Firefox", + "Safari", + "Microsoft Edge", + "Opera", + ] as const; const browser = Bowser.getParser(window.navigator.userAgent); const browserName = browser.getBrowserName(true); From 685691be02061b05da2fa089b6b97d3a4d7a2086 Mon Sep 17 00:00:00 2001 From: andrei Date: Mon, 7 Jul 2025 11:47:55 +0200 Subject: [PATCH 7/8] refactor: warning message --- vis/js/HeadstartRunner.tsx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/vis/js/HeadstartRunner.tsx b/vis/js/HeadstartRunner.tsx index 71b23a0e8..d3121090a 100644 --- a/vis/js/HeadstartRunner.tsx +++ b/vis/js/HeadstartRunner.tsx @@ -82,13 +82,12 @@ class HeadstartRunner { ).includes(browserName); if (!isSupportedBrowser || !browserName) { - const warningMessage = + alert( "You are using an unsupported browser. " + - "This visualization was successfully tested " + - "with the latest versions of " + - `${SUPPORTED.slice(0, -1).join(", ")} and ${SUPPORTED.at(-1)}.`; - - alert(warningMessage); + "This visualization was successfully tested " + + "with the latest versions of " + + "Chrome, Firefox, Safari, Edge and Opera." + ); } } From 3ad9654d6bf8c5fa6fc051fa5752a64549fd83b1 Mon Sep 17 00:00:00 2001 From: andrei Date: Thu, 10 Jul 2025 12:49:07 +0200 Subject: [PATCH 8/8] feat: recomendations in the warning message --- vis/js/HeadstartRunner.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vis/js/HeadstartRunner.tsx b/vis/js/HeadstartRunner.tsx index d3121090a..88fd657f8 100644 --- a/vis/js/HeadstartRunner.tsx +++ b/vis/js/HeadstartRunner.tsx @@ -86,7 +86,8 @@ class HeadstartRunner { "You are using an unsupported browser. " + "This visualization was successfully tested " + "with the latest versions of " + - "Chrome, Firefox, Safari, Edge and Opera." + "Chrome, Firefox, Safari, Edge and Opera. " + + "We strongly recommend using one of these browsers." ); } }