Skip to content

Commit 2fee8e7

Browse files
committed
only highlight some dots!
1 parent 002c1c5 commit 2fee8e7

File tree

1 file changed

+40
-5
lines changed

1 file changed

+40
-5
lines changed

src/routes/+page.svelte

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
<script>
2-
import { differenceInSeconds, startOfYear } from 'date-fns';
2+
import {
3+
differenceInSeconds,
4+
startOfDay,
5+
startOfHour,
6+
startOfMonth,
7+
startOfWeek,
8+
startOfYear
9+
} from 'date-fns';
10+
import { browser } from '$app/environment';
311
412
function changeBg() {
513
document.querySelector(':root').style.setProperty('--bg-color', '#ffffff');
@@ -43,11 +51,30 @@
4351
let nowDots = $state(0);
4452
setInterval(() => {
4553
let date = new Date();
46-
let start = startOfYear(date);
54+
let start;
55+
if (timerange == 'hour') {
56+
start = startOfHour(date);
57+
} else if (timerange == 'day') {
58+
start = startOfDay(date);
59+
} else if (timerange == 'week') {
60+
start = startOfWeek(date);
61+
} else if (timerange == 'month') {
62+
start = startOfMonth(date);
63+
} else if (timerange == 'year') {
64+
start = startOfYear(date);
65+
}
4766
let diff = differenceInSeconds(date, start);
48-
nowDots = diff / secondsPer[unit];
67+
nowDots = Math.floor(diff / secondsPer[unit]);
4968
}, 100);
5069
70+
let dotElems = $derived.by(() => {
71+
if (browser) {
72+
return document.getElementsByClassName('dot');
73+
} else {
74+
return 0;
75+
}
76+
});
77+
5178
let rows = $derived(Math.ceil(dots / cols));
5279
let lastRow = $derived(dots % cols);
5380
$inspect(nowDots);
@@ -59,9 +86,17 @@
5986
<div class="flex flex-row gap-1">
6087
{#each cols != null ? { length: cols } : { length: 1 }, dot}
6188
{#if lastRow == 0}
62-
<div class="bg-primary size-6 rounded-full"></div>
89+
{#if row * cols + dot + 1 <= nowDots}
90+
<div class="bg-primary dot size-6 rounded-full"></div>
91+
{:else}
92+
<div class="bg-inactive dot size-6 rounded-full"></div>
93+
{/if}
6394
{:else if dot + 1 <= lastRow || row + 1 != rows}
64-
<div class="bg-primary size-6 rounded-full"></div>
95+
{#if row * cols + dot + 1 <= nowDots}
96+
<div class="bg-primary dot size-6 rounded-full"></div>
97+
{:else}
98+
<div class="bg-inactive dot size-6 rounded-full"></div>
99+
{/if}
65100
{/if}
66101
{/each}
67102
</div>

0 commit comments

Comments
 (0)