blob: 2ad013f39b45bf54271893f0faf404d36965101b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
<script lang="ts">
import { onMount } from 'svelte';
import Monaco from './Monaco.svelte';
let content_script = $state('');
let default_value =
$state(`// Do not put untrusted content here! See https://en.wikipedia.org/wiki/Self-XSS!
// The extension authors hold no liability for you stupidly putting things here without knowing any better.
// See https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions for a tutorial on how to handle things.
// Content saves on every keystroke due to laziness.
// Reload (disable & re-enable) extension or restart browser to apply changes.
`);
let mounted = $state(false);
onMount(async () => {
const s = (await browser.storage.local.get('sc')).sc;
default_value = s && `${s}`.length ? `${s}` : default_value;
content_script = default_value ?? '';
setTimeout(() => {
mounted = true;
setTimeout(() => {
content_script = default_value;
}, 0);
}, 0);
});
$effect(() => {
(async (cs: string) => {
if (mounted) {
await browser.storage.local.set({ sc: cs });
if (browser.runtime.lastError) {
console.warn('Last Error is ', browser.runtime.lastError.message);
browser.runtime.lastError = undefined;
}
}
})(content_script);
});
</script>
{#if mounted}
<Monaco defaultValue={default_value} bind:value={content_script} />
{:else}
Getting Storage
{/if}
|