From fc2ad7afad7da64a0ad3ddd81b89941ddb395f21 Mon Sep 17 00:00:00 2001 From: Thomas Rupprecht Date: Sun, 25 Dec 2022 02:33:24 +0100 Subject: [PATCH] store data in localStorage --- src/background.js | 7 ++++--- src/popup.js | 17 +++++++++-------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/background.js b/src/background.js index d1596e6..f8088e0 100644 --- a/src/background.js +++ b/src/background.js @@ -45,7 +45,8 @@ async function fetchNewData() { await browser.browserAction.setBadgeText({text: badgeText}); await browser.browserAction.setBadgeBackgroundColor({color: badgeBgColor}); - if (window.spaceApi && window.spaceApi.state.open !== spaceApiJson.state.open) { + const spaceApi = JSON.parse(localStorage.getItem('spaceApi')); + if (spaceApi && spaceApi.state.open !== spaceApiJson.state.open) { const state = browser.i18n.getMessage(spaceApiJson.state.open ? 'open' : 'closed'); await browser.notifications.create('status-change', { type: 'basic', @@ -56,8 +57,8 @@ async function fetchNewData() { } } - window.calendar = calendarJson; - window.spaceApi = spaceApiJson; + localStorage.setItem('calendar', JSON.stringify(calendarJson)); + localStorage.setItem('spaceApi', JSON.stringify(spaceApiJson)); } catch (error) { console.error(error); } diff --git a/src/popup.js b/src/popup.js index 7ba5d6d..cf5bfaf 100644 --- a/src/popup.js +++ b/src/popup.js @@ -49,20 +49,21 @@ async function init() { linkElement.addEventListener('click', linkElementClickListener); }); - try { - const page = await browser.runtime.getBackgroundPage(); + const calendar = JSON.parse(localStorage.getItem('calendar')); + const spaceApi = JSON.parse(localStorage.getItem('spaceApi')); - updateNextEvent(page.calendar); - updateSpaceApiJson(page.spaceApi); - updateState(page.spaceApi); - } catch (error) { - console.error(error); + if (calendar) { + updateNextEvent(calendar); + } + if (spaceApi) { + updateSpaceApiJson(spaceApi); + updateState(spaceApi); } } init(); /** - * @param {object} nextEvents + * @param {Array} nextEvents */ function updateNextEvent(nextEvents) { const calendarElement = document.getElementById('calendar');