Update guest v2 home and tasks experience

This commit is contained in:
Codex Agent
2026-02-03 18:59:30 +01:00
parent a820ef2e8b
commit 7f1e6c06fb
31 changed files with 753 additions and 259 deletions

View File

@@ -3,17 +3,27 @@ import { useEffect, useRef, useState } from 'react';
export type EventStats = {
onlineGuests: number;
tasksSolved: number;
guestCount: number;
likesCount: number;
latestPhotoAt: string | null;
};
type StatsResponse = {
online_guests?: number;
tasks_solved?: number;
guest_count?: number;
likes_count?: number;
latest_photo_at?: string;
};
export function usePollStats(eventKey: string | null | undefined) {
const [data, setData] = useState<EventStats>({ onlineGuests: 0, tasksSolved: 0, latestPhotoAt: null });
const [data, setData] = useState<EventStats>({
onlineGuests: 0,
tasksSolved: 0,
guestCount: 0,
likesCount: 0,
latestPhotoAt: null,
});
const [loading, setLoading] = useState(true);
const timer = useRef<number | null>(null);
const [visible, setVisible] = useState(
@@ -30,7 +40,13 @@ export function usePollStats(eventKey: string | null | undefined) {
if (res.status === 304) return;
if (!res.ok) {
if (res.status === 404) {
setData({ onlineGuests: 0, tasksSolved: 0, latestPhotoAt: null });
setData({
onlineGuests: 0,
tasksSolved: 0,
guestCount: 0,
likesCount: 0,
latestPhotoAt: null,
});
}
return;
}
@@ -38,6 +54,8 @@ export function usePollStats(eventKey: string | null | undefined) {
setData({
onlineGuests: json.online_guests ?? 0,
tasksSolved: json.tasks_solved ?? 0,
guestCount: json.guest_count ?? 0,
likesCount: json.likes_count ?? 0,
latestPhotoAt: json.latest_photo_at ?? null,
});
} finally {