feat: reimplement blink timer
ci/woodpecker/push/build Pipeline failed
Details
ci/woodpecker/push/build Pipeline failed
Details
This commit is contained in:
parent
d4e3f736b5
commit
7ae2243bdd
|
@ -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);
|
||||
}
|
|
@ -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(() => {
|
||||
|
|
Loading…
Reference in New Issue