fix(electrobun): untrack blink+session timer writes to prevent effect_update_depth_exceeded
This commit is contained in:
parent
f2e8b07d7f
commit
a4c0435b56
1 changed files with 7 additions and 6 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { onMount } from 'svelte';
|
import { onMount, untrack } from 'svelte';
|
||||||
import ProjectCard from './ProjectCard.svelte';
|
import ProjectCard from './ProjectCard.svelte';
|
||||||
import SettingsDrawer from './SettingsDrawer.svelte';
|
import SettingsDrawer from './SettingsDrawer.svelte';
|
||||||
import CommandPalette from './CommandPalette.svelte';
|
import CommandPalette from './CommandPalette.svelte';
|
||||||
|
|
@ -43,19 +43,20 @@
|
||||||
let appReady = $state(false);
|
let appReady = $state(false);
|
||||||
let sessionStart = $state(Date.now());
|
let sessionStart = $state(Date.now());
|
||||||
|
|
||||||
// ── Blink timer ─────────────────────────────────────────────
|
// ── Blink timer (untracked — must not create reactive dependency) ────
|
||||||
let blinkVisible = $state(true);
|
let blinkVisible = $state(true);
|
||||||
|
let _blinkId: ReturnType<typeof setInterval>;
|
||||||
$effect(() => {
|
$effect(() => {
|
||||||
const id = setInterval(() => { blinkVisible = !blinkVisible; }, 500);
|
_blinkId = setInterval(() => { untrack(() => { blinkVisible = !blinkVisible; }); }, 500);
|
||||||
return () => clearInterval(id);
|
return () => clearInterval(_blinkId);
|
||||||
});
|
});
|
||||||
|
|
||||||
// ── Session duration ────────────────────────────────────────
|
// ── Session duration (untracked) ──────────────────────────────
|
||||||
let sessionDuration = $state('0m');
|
let sessionDuration = $state('0m');
|
||||||
$effect(() => {
|
$effect(() => {
|
||||||
function update() {
|
function update() {
|
||||||
const mins = Math.floor((Date.now() - sessionStart) / 60000);
|
const mins = Math.floor((Date.now() - sessionStart) / 60000);
|
||||||
sessionDuration = mins < 60 ? `${mins}m` : `${Math.floor(mins / 60)}h ${mins % 60}m`;
|
untrack(() => { sessionDuration = mins < 60 ? `${mins}m` : `${Math.floor(mins / 60)}h ${mins % 60}m`; });
|
||||||
}
|
}
|
||||||
update();
|
update();
|
||||||
const id = setInterval(update, 10000);
|
const id = setInterval(update, 10000);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue