39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import ClimateChart from "./ClimateChart";
|
|
|
|
const CHART_DOM_ID: string = "myChart";
|
|
let rootUrl: string = "";
|
|
|
|
function createClimateChart() {
|
|
const pathname = window.location.pathname;
|
|
if (pathname !== "/") {
|
|
rootUrl += pathname.match(/\/[^?\s]*/)[0];
|
|
}
|
|
let minutesDisplayed = 60;
|
|
const argsStart = pathname.search(/\?minute-span=/);
|
|
if (argsStart !== -1) {
|
|
const parsedMins = Number(pathname[12]);
|
|
if (!isNaN(parsedMins) && parsedMins > 0) {
|
|
minutesDisplayed = parsedMins;
|
|
}
|
|
}
|
|
return new ClimateChart(rootUrl, CHART_DOM_ID, minutesDisplayed);
|
|
}
|
|
|
|
const overlay = document.createElement('div');
|
|
overlay.classList.add('overlay', 'center');
|
|
const textContainer = document.createElement('span');
|
|
textContainer.innerText = 'Loading data...';
|
|
overlay.appendChild(textContainer);
|
|
|
|
document.onreadystatechange = (e) => {
|
|
document.getElementById("root").appendChild(overlay);
|
|
const climateChart = createClimateChart();
|
|
climateChart.onLoaded(() => {
|
|
overlay.classList.add('hidden');
|
|
});
|
|
climateChart.onErrored((e) => {
|
|
overlay.classList.remove('hidden');
|
|
textContainer.innerText = `An error occurred: ${e}\nTry restarting the page.`;
|
|
});
|
|
document.onreadystatechange = () => {};
|
|
}; |