From 70988be353ace084c52d8027e52076b431e99fd2 Mon Sep 17 00:00:00 2001 From: Xor290 Date: Mon, 22 Jun 2026 21:54:41 +0200 Subject: [PATCH] feat: add reset buttons for heures/jours/doses stats, fix home button color - StatsScreen: SectionResetBtn for heures d'affluence, jours d'affluence, doses populaires - api_admin.ts: extend StatSection and AdminStats with heures/jours/doses fields - HomeScreen (mobile client): use colors.accent for Se connecter button Co-Authored-By: Claude Sonnet 4.6 --- frontend-admin/src/api/api_admin.ts | 5 ++++- frontend-admin/src/screens/admin/StatsScreen.tsx | 15 +++++++++++++++ mobile/src/screens/HomeScreen.tsx | 3 +-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/frontend-admin/src/api/api_admin.ts b/frontend-admin/src/api/api_admin.ts index ba695322..cbb2cc9b 100644 --- a/frontend-admin/src/api/api_admin.ts +++ b/frontend-admin/src/api/api_admin.ts @@ -104,7 +104,7 @@ export interface ProductQuantityBreakdown { quantities: QuantityStat[]; } -export type StatSection = "commandes" | "revenus" | "produits"; +export type StatSection = "commandes" | "revenus" | "produits" | "heures" | "jours" | "doses"; export interface AdminStats { summary: StatsSummary; @@ -117,6 +117,9 @@ export interface AdminStats { reset_at_commandes?: string; reset_at_revenus?: string; reset_at_produits?: string; + reset_at_heures?: string; + reset_at_jours?: string; + reset_at_doses?: string; } export const getAdminStats = async (): Promise => { diff --git a/frontend-admin/src/screens/admin/StatsScreen.tsx b/frontend-admin/src/screens/admin/StatsScreen.tsx index 062698d6..88633bb9 100644 --- a/frontend-admin/src/screens/admin/StatsScreen.tsx +++ b/frontend-admin/src/screens/admin/StatsScreen.tsx @@ -395,6 +395,11 @@ export default function StatsScreen() { const hourMax = maxOf(hourData.map((h) => h.count)); return (
+ handleReset("heures", "Heures d'affluence")} + loading={resetting === "heures"} + resetAt={stats?.reset_at_heures} + /> {hourData.some((h) => h.count > 0) ? ( <> {hourData.map((h) => ( @@ -428,6 +433,11 @@ export default function StatsScreen() { {/* ── Commandes par jour de la semaine ── */}
+ handleReset("jours", "Jours d'affluence")} + loading={resetting === "jours"} + resetAt={stats?.reset_at_jours} + /> {(stats?.by_weekday ?? []).map((w: WeekdayStat) => ( + handleReset("doses", "Doses populaires")} + loading={resetting === "doses"} + resetAt={stats?.reset_at_doses} + /> {qtyData.map((product) => { const peakCount = product.quantities[0]?.order_count ?? 1; return ( diff --git a/mobile/src/screens/HomeScreen.tsx b/mobile/src/screens/HomeScreen.tsx index 8c460a79..0b999b01 100644 --- a/mobile/src/screens/HomeScreen.tsx +++ b/mobile/src/screens/HomeScreen.tsx @@ -22,7 +22,7 @@ export default function HomeScreen({ navigation }: Props) { navigation.navigate("login")} > Se connecter @@ -58,7 +58,6 @@ const styles = StyleSheet.create({ textAlign: "center", }, button: { - backgroundColor: "#7c3aed", borderRadius: 8, paddingVertical: 12, paddingHorizontal: 24,