import config from "@/utils/config.json";
import { preferences, cache } from "@/utils/storage";
browser.devtools.panels.create("Poly+", "icon/128.png", "devtools.html");
for (const src of [
"/css/polytoria.css",
"/css/preferences.css"
]) {
const css = browser.runtime.getURL(src as any);
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = css;
document.head.appendChild(link);
};
const modal: HTMLDialogElement = document.getElementsByTagName('dialog')[0]!;
const openModal = (title: string, description: string, body: any, json: boolean) => {
if (json) {
body = `
${JSON.stringify((body || []), null, 2)
.replaceAll('\n','
')
.replaceAll(' ', ' ')
.replaceAll('\t', ' ')}
`;
};
modal.getElementsByTagName('h5')[0]!.textContent = title;
modal.getElementsByTagName('span')[0]!.textContent = description;
modal.getElementsByClassName('modal-body')[0]!.innerHTML = body;
modal.showModal();
};
document.getElementById('view-preferences')!.addEventListener('click', async () => {
openModal(
"Preferences",
"The following values are the user's preferences.",
await preferences.getPreferences(),
true
);
});
document.getElementById('view-cache')!.addEventListener('click', async () => {
openModal(
"Cache",
"The following values are saved for a certain period of time, before being \"replenished\" when next requested.",
await cache.getValue(),
true
);
});
document.getElementById('expose-config')!.addEventListener('click', () => openModal(
"Configuration",
"The defining values for several features of the extension.",
config,
true
));
document.getElementById('modal-close')!.addEventListener('click', () => modal.close());