fix(stats): count mined cards once and keep lexical stats exact after deletes (#280)

This commit is contained in:
sudacode authored and GitHub committed 2026-10-03 21:16:12 -07:00
1 parent 121b688afb
commit e77aa5c3b3
24 files changed
+736 -153

No files matched your search

+2 -2
View File
@@ -2,7 +2,7 @@ import { useState, useEffect } from 'react';
import { getStatsClient } from './useStatsApi';
import type { OverviewData, SessionSummary } from '../types/stats';
export function useOverview() {
export function useOverview(refreshKey = 0) {
const [data, setData] = useState<OverviewData | null>(null);
const [sessions, setSessions] = useState<SessionSummary[]>([]);
const [loading, setLoading] = useState(true);
@@ -30,7 +30,7 @@ export function useOverview() {
return () => {
cancelled = true;
};
}, []);
}, [refreshKey]);
return { data, sessions, setSessions, loading, error };
}
+4 -2
View File
@@ -2,13 +2,15 @@ import { useState, useEffect } from 'react';
import { getStatsClient } from './useStatsApi';
import type { StreakCalendarDay } from '../types/stats';
export function useStreakCalendar(days = 90) {
export function useStreakCalendar(days = 90, refreshKey = 0) {
const [calendar, setCalendar] = useState<StreakCalendarDay[]>([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(null);
useEffect(() => {
let cancelled = false;
setLoading(true);
setError(null);
getStatsClient()
.getStreakCalendar(days)
.then((data) => {
@@ -23,7 +25,7 @@ export function useStreakCalendar(days = 90) {
return () => {
cancelled = true;
};
}, [days]);
}, [days, refreshKey]);
return { calendar, loading, error };
}