extract code into setBadgeStatus and createStatusChangedNotification function

This commit is contained in:
Thomas Rupprecht 2023-01-20 17:42:45 +01:00
parent b1dc1a0d21
commit ad9abe3c94
1 changed files with 26 additions and 11 deletions

View File

@ -60,20 +60,11 @@ async function fetchNewData() {
new Date(event.begin) <= now && now <= new Date(event.end)
)) ?? false;
const badgeText = browser.i18n.getMessage(spaceApiJson.state.open ? 'badgeOpen' : eventActive ? 'badgeEvent' : 'badgeClosed');
const badgeBgColor = spaceApiJson.state.open ? BADGE_COLORS.open : eventActive ? BADGE_COLORS.event : BADGE_COLORS.closed;
await browser.action.setBadgeText({text: badgeText});
await browser.action.setBadgeBackgroundColor({color: badgeBgColor});
await setBadgeStatus(spaceApiJson.state.open, eventActive);
const {spaceApi} = await browser.storage.local.get('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',
title: browser.i18n.getMessage('stateNotificationTitle'),
message: browser.i18n.getMessage('stateNotificationMessage', state),
iconUrl: browser.runtime.getURL('icons/favicon.svg'),
});
await createStatusChangedNotification(spaceApiJson.state.open);
}
}
@ -86,6 +77,30 @@ async function fetchNewData() {
}
}
/**
* @param {boolean} open
* @param {boolean} eventActive
*/
async function setBadgeStatus(open, eventActive) {
const badgeText = browser.i18n.getMessage(open ? 'badgeOpen' : eventActive ? 'badgeEvent' : 'badgeClosed');
const badgeBgColor = open ? BADGE_COLORS.open : eventActive ? BADGE_COLORS.event : BADGE_COLORS.closed;
await browser.action.setBadgeText({text: badgeText});
await browser.action.setBadgeBackgroundColor({color: badgeBgColor});
}
/**
* @param {boolean} open
*/
async function createStatusChangedNotification(open) {
const stateL10n = browser.i18n.getMessage(open ? 'open' : 'closed');
await browser.notifications.create('status-changed', {
type: 'basic',
title: browser.i18n.getMessage('stateNotificationTitle'),
message: browser.i18n.getMessage('stateNotificationMessage', stateL10n),
iconUrl: browser.runtime.getURL('icons/favicon.svg'),
});
}
function init() {
fetchNewData();