commit 14b80dfea6bc93333f3d4e072e206017772de5de
parent 24928c10faf1799d6a2bd54a47371fcdeda7768d
Author: Emily Doherty <git@emily.sh>
Date: Sat, 16 Nov 2024 17:53:57 -0800
Add option to generate overlay URL
This is going to be expanded upon in future releases, for now it's hardcoded to use just the previous time overlay
Diffstat:
2 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/src/index.js b/src/index.js
@@ -6,7 +6,7 @@ import fetchData from "./fetchData";
import {updateHighTime} from "./highTime";
import {updateLowTime} from "./lowTime";
import {addLoader, removeLoader} from "./loader";
-import {allowOverlay, forceOverlayOff, isOverlaySelected} from "./overlay";
+import {allowOverlay, forceOverlayOff, forceOverlayOn, isOverlayAllowed, isOverlaySelected} from "./overlay";
import TokenChart from "./tokenChart";
import Datum from "./datum";
@@ -212,6 +212,15 @@ function detectZeroQuery(urlSearchParams) {
toggleStartYAtZero();
}
+function detectOverlayQuery(urlSearchParams) {
+ const enableOverlay = urlSearchParams.get('overlay') === 'previous_time';
+ if (enableOverlay) {
+ forceOverlayOn();
+ } else {
+ forceOverlayOff();
+ }
+}
+
function detectURLQuery() {
const urlSearchParams = new URLSearchParams(window.location.search);
if (urlSearchParams.has('region')) {
@@ -226,6 +235,9 @@ function detectURLQuery() {
if (urlSearchParams.has('startAtZero')) {
detectZeroQuery(urlSearchParams)
}
+ if (urlSearchParams.has('overlay')) {
+ detectOverlayQuery(urlSearchParams);
+ }
}
function buildDeepLinksURL() {
@@ -242,6 +254,9 @@ function buildDeepLinksURL() {
if (startYAtZero !== false){
url += `startAtZero=${startYAtZero}&`
}
+ if (isOverlaySelected()){
+ url += `overlay=previous_time&`
+ }
return url
}
diff --git a/src/overlay.js b/src/overlay.js
@@ -19,9 +19,22 @@ function forceOverlayOff(){
periodOverlayField.style.display = 'none';
}
+function forceOverlayOn(){
+ const overlaySetting = document.getElementById("period-overlay");
+ const periodOverlayField = document.getElementById("period-overlay-options");
+ const advancedOptionsField = document.getElementById("advanced-options");
+ overlaySetting.checked = true;
+ advancedOptionsField.style.display = 'flex';
+ periodOverlayField.style.display = 'flex';
+}
+
+function isOverlayAllowed(timeSelection) {
+ return !(timeSelection === "all")
+}
+
function allowOverlay(){
const periodOverlayField = document.getElementById("period-overlay-options");
periodOverlayField.style.display = 'flex';
}
-export {isOverlaySelected, getOverlayTime, setOverlayLabelTime, forceOverlayOff, allowOverlay};
-\ No newline at end of file
+export {isOverlaySelected, getOverlayTime, setOverlayLabelTime, forceOverlayOff, forceOverlayOn, isOverlayAllowed, allowOverlay};
+\ No newline at end of file