Valider fase 15–16: fiks minnelekkasje, skrivefeil + marker ferdig
- SoundPadGrid: spor setTimeout-IDer og rydd opp ved komponent-destroy (unngår oppdatering av tilstand etter unmount) - Admin usage: fiks skrivefeil "1 ar" → "1 år" - tasks.md: marker 23.7 som fullført
This commit is contained in:
parent
1e34c3c67a
commit
b5f419486a
3 changed files with 12 additions and 6 deletions
|
|
@ -40,6 +40,7 @@
|
||||||
let loadingPads = $state(new Set<number>());
|
let loadingPads = $state(new Set<number>());
|
||||||
let playingPads = $state(new Set<number>());
|
let playingPads = $state(new Set<number>());
|
||||||
let configMode = $state(false);
|
let configMode = $state(false);
|
||||||
|
let playingTimeouts: Map<number, ReturnType<typeof setTimeout>> = new Map();
|
||||||
|
|
||||||
// Edit state for config mode
|
// Edit state for config mode
|
||||||
let editLabel = $state('');
|
let editLabel = $state('');
|
||||||
|
|
@ -78,6 +79,9 @@
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
unloadAllPads();
|
unloadAllPads();
|
||||||
|
// Clear visual feedback timeouts
|
||||||
|
for (const t of playingTimeouts.values()) clearTimeout(t);
|
||||||
|
playingTimeouts.clear();
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -122,13 +126,16 @@
|
||||||
ensureAudioContext();
|
ensureAudioContext();
|
||||||
playPad(padId);
|
playPad(padId);
|
||||||
|
|
||||||
// Visual feedback
|
// Visual feedback — track timeout for cleanup on destroy
|
||||||
playingPads = new Set([...playingPads, index]);
|
playingPads = new Set([...playingPads, index]);
|
||||||
setTimeout(() => {
|
const prev = playingTimeouts.get(index);
|
||||||
|
if (prev) clearTimeout(prev);
|
||||||
|
playingTimeouts.set(index, setTimeout(() => {
|
||||||
const next = new Set(playingPads);
|
const next = new Set(playingPads);
|
||||||
next.delete(index);
|
next.delete(index);
|
||||||
playingPads = next;
|
playingPads = next;
|
||||||
}, 300);
|
playingTimeouts.delete(index);
|
||||||
|
}, 300));
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handlePadPress(index: number) {
|
async function handlePadPress(index: number) {
|
||||||
|
|
|
||||||
|
|
@ -176,7 +176,7 @@
|
||||||
{ value: 7, label: '7 dager' },
|
{ value: 7, label: '7 dager' },
|
||||||
{ value: 30, label: '30 dager' },
|
{ value: 30, label: '30 dager' },
|
||||||
{ value: 90, label: '90 dager' },
|
{ value: 90, label: '90 dager' },
|
||||||
{ value: 365, label: '1 ar' }
|
{ value: 365, label: '1 år' }
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
||||||
3
tasks.md
3
tasks.md
|
|
@ -301,8 +301,7 @@ med spesifikasjon for det som trenger en dedikert sesjon.
|
||||||
- [x] 23.4 Valider fase 9–10 (visninger + AI): kanban drag-and-drop, kalender, dagbok, kunnskapsgraf, LiteLLM-ruting, AI-foreslåtte edges, oppsummering, TTS.
|
- [x] 23.4 Valider fase 9–10 (visninger + AI): kanban drag-and-drop, kalender, dagbok, kunnskapsgraf, LiteLLM-ruting, AI-foreslåtte edges, oppsummering, TTS.
|
||||||
- [x] 23.5 Valider fase 11 (produksjon): LiveKit-oppsett, sanntidslyd, pruning-logikk, podcast-RSS.
|
- [x] 23.5 Valider fase 11 (produksjon): LiveKit-oppsett, sanntidslyd, pruning-logikk, podcast-RSS.
|
||||||
- [x] 23.6 Valider fase 13–14 (traits + publisering): trait-validering, pakkevelger, Tera-templates, HTML-rendering, forside, slot-håndtering, redaksjonell flyt, planlagt publisering, A/B-testing.
|
- [x] 23.6 Valider fase 13–14 (traits + publisering): trait-validering, pakkevelger, Tera-templates, HTML-rendering, forside, slot-håndtering, redaksjonell flyt, planlagt publisering, A/B-testing.
|
||||||
- [~] 23.7 Valider fase 15–16 (admin + lydmixer): systemvarsler, graceful shutdown, jobbkø-oversikt, ressursstyring, serverhelse, Web Audio mixer, delt kontroll, sound pads, EQ, stemmeeffekter.
|
- [x] 23.7 Valider fase 15–16 (admin + lydmixer): systemvarsler, graceful shutdown, jobbkø-oversikt, ressursstyring, serverhelse, Web Audio mixer, delt kontroll, sound pads, EQ, stemmeeffekter.
|
||||||
> Påbegynt: 2026-03-18T15:30
|
|
||||||
- [ ] 23.8 Valider fase 17–18 (lydstudio-utbedring + AI-verktøy): responsivt layout, FFmpeg-validering, fade/silence, AI-presets, direction-logikk, drag-and-drop integrasjon.
|
- [ ] 23.8 Valider fase 17–18 (lydstudio-utbedring + AI-verktøy): responsivt layout, FFmpeg-validering, fade/silence, AI-presets, direction-logikk, drag-and-drop integrasjon.
|
||||||
- [ ] 23.9 Valider fase 19–20 (arbeidsflaten + universell overføring): canvas pan/zoom, BlockShell, layout-persistering, snarveier, transfer service, alle panelreworks (chat, kanban, kalender, editor, studio).
|
- [ ] 23.9 Valider fase 19–20 (arbeidsflaten + universell overføring): canvas pan/zoom, BlockShell, layout-persistering, snarveier, transfer service, alle panelreworks (chat, kanban, kalender, editor, studio).
|
||||||
- [ ] 23.10 Valider fase 21 (CLI-verktøy): kjør hvert synops-*-verktøy, verifiser --help, --payload-json, output-format, feilhåndtering, synops-common integrasjon.
|
- [ ] 23.10 Valider fase 21 (CLI-verktøy): kjør hvert synops-*-verktøy, verifiser --help, --payload-json, output-format, feilhåndtering, synops-common integrasjon.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue