feat: reimplement blink timer
ci/woodpecker/push/build Pipeline failed Details

This commit is contained in:
Emerald 2023-10-31 22:18:35 -04:00
parent d4e3f736b5
commit 7ae2243bdd
Signed by: emerald
GPG Key ID: 13F7EFB915A0F623
2 changed files with 26 additions and 0 deletions

24
src/lib/blink.ts Normal file
View File

@ -0,0 +1,24 @@
import { config } from "$lib/store";
import { get } from "svelte/store";
export let blinkTimer: NodeJS.Timeout;
export const initBlink = () => {
config.subscribe((cfg) => {
if(blinkTimer) clearInterval(blinkTimer);
startTimer(cfg.blink_interval);
})
}
const startTimer = (time: number) => {
let last = 0;
let elapsed = 0;
blinkTimer = setInterval(() => {
elapsed += Date.now() - last;
if (elapsed >= time * 2 || Math.random() >= 0.5){
elapsed = 0
window?.dispatchEvent(new Event('blink'));
}
last = Date.now();
}, time);
}

View File

@ -25,6 +25,7 @@
import SettingsButton from '$lib/components/SettingsButton.svelte';
import { debug } from '$lib/logging';
import { loadLast } from '$lib/io';
import { initBlink } from '$lib/blink';
storePopup.set({ computePosition, autoUpdate, flip, shift, offset, arrow });
@ -47,6 +48,7 @@
}
await initState();
await loadLast();
initBlink();
});
onDestroy(() => {