blob: 6dc08db00a36d672c02520976059ce5d72e42bc8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
import { createGuest } from "../logic/players.js";
import { randomStatus } from "../logic/random.js";
const STORAGE_KEY = "Guest";
const GUEST_COUNT = 18;
function loadInitialGuests() {
const stored = JSON.parse(localStorage.getItem(STORAGE_KEY));
if (stored && stored.length > 0) {
return stored.map((g) =>
createGuest(Number(g.id), Boolean(Number(g.status)), Number(g.games))
);
}
return Array.from({ length: GUEST_COUNT }, (_, i) => createGuest(i, randomStatus()));
}
let guests = $state(loadInitialGuests());
function persist() {
localStorage.setItem(STORAGE_KEY, JSON.stringify(guests));
}
if (!localStorage.getItem(STORAGE_KEY)) persist();
export function getGuests() {
return guests;
}
export function activeGuests() {
return guests.filter((g) => g.status);
}
export function toggleGuest(id) {
const guest = guests.find((g) => g.id === id);
if (!guest) return;
guest.status = !guest.status;
persist();
}
export function incrementGuestGames(names) {
for (const guest of guests) {
if (names.includes(guest.name)) {
guest.games += 1;
}
}
persist();
}
|