queue/source/settings-page.ts

49 lines
1.4 KiB
TypeScript

import {html, render} from 'htm/preact';
import browser from 'webextension-polyfill';
import {backgroundHandler, getManifest} from './utilities/browser';
import {debug} from './utilities/log';
import {PageFooter, PageHeader, PageMain} from './utilities/components';
import Settings from './utilities/settings';
window.addEventListener('DOMContentLoaded', async () => {
window.HollloQueue = {
clearHistory: async () => {
debug('Clearing history');
await browser.storage.local.remove('history');
},
dumpBackup: async () => {
debug(JSON.stringify(await browser.storage.local.get(), null, 2));
},
dumpSettings: async () => {
debug(JSON.stringify(await Settings.get(), null, 2));
},
};
backgroundHandler();
await browser.runtime.sendMessage({action: 'queue update badge'});
const manifest = getManifest();
const settings = await Settings.get();
const showVersionUpdated = settings.versionGotUpdated;
if (showVersionUpdated) {
settings.versionGotUpdated = false;
await settings.save();
}
const history = await browser.storage.local.get({history: []});
render(
html`
<${PageHeader} />
<${PageMain} history=${history.history} settings=${settings} />
<${PageFooter}
manifest=${manifest}
showVersionUpdated=${showVersionUpdated}
/>
`,
document.body,
);
});