diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 50a77f3..b6d0cfd 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -4,16 +4,20 @@ import { rounds } from "$lib/stores/rounds.js"; import { categories } from "$lib/stores/categories.js"; - let surfers = []; - let start = false; let timer; - let info = { - time: "00", + + let surfers = $state([]); + let start = $state(false); + + let info = $state({ cat: "U12 M", round: "Qualifying", heat: "1", - }; - let round_name = false; + }); + let mins = $state(0); + let secs = $state(0); + + let round_name = $state(false); onMount(async () => { LoadFromLocalCache(); @@ -45,11 +49,12 @@ ]; start = false; info = { - time: "00", cat: "U12 M", round: "Qualifying", heat: "1", }; + mins = 0; + secs = 0; round_name = false; console.log(`reset store: ${JSON.stringify(surfers)}`); } @@ -57,7 +62,6 @@ function SaveToLocalCahe() { window.sessionStorage.setItem("surfers", JSON.stringify(surfers)); window.sessionStorage.setItem("info", JSON.stringify(info)); - window.sessionStorage.setItem("start", JSON.stringify(start)); console.log(`update cache: ${JSON.stringify(surfers)}`); } @@ -65,7 +69,23 @@ console.log("StartHeat"); start = true; SaveToLocalCahe(); - timer = setInterval(info.time - 1, 1000); + timer = setInterval(Timer, 200); + } + + function pad(n) { + return n < 10 ? "0" + n : n; + } + + function Timer() { + console.log(mins + ":" + secs); + if (secs == 0) { + mins = mins - 1; + secs = 59; + console.log("sec = 0: " + mins + ":" + secs); + } else { + secs = secs - 1; + console.log("sec > 0: " + mins + ":" + secs); + } } function StopHeat() { @@ -107,8 +127,8 @@
- {#if info.time > "00"} - {info.time}:00 + {#if mins >= 0} + {pad(mins)}:{pad(secs)} {/if}
@@ -146,12 +166,12 @@ + onclick={StopHeat}>Stop {:else} + onclick={StartHeat}>Start {/if}
@@ -164,7 +184,7 @@ pattern="^[0-9][0-9]$" maxlength="2" size="2" - bind:value={info.time} /> + bind:value={mins} /> category