import { useFocusEffect } from "@react-navigation/native"; import { useCallback, useState } from "react"; import { View } from "react-native"; import { Text } from "react-native-paper"; import AppBarChart from "./AppBarChart"; import { MARGIN, PADDING } from "./constants"; import { AppDataSource } from "./data-source"; import DrawerHeader from "./DrawerHeader"; import { DAYS } from "./time"; import Select from "./Select"; import { Periods } from "./periods"; export interface WeekCounts { week: number; count: number; } export default function InsightsPage() { const [weekCounts, setWeekCounts] = useState([]); const [period, setPeriod] = useState(Periods.Monthly); useFocusEffect( useCallback(() => { let difference = "-1 months"; if (period === Periods.TwoMonths) difference = "-2 months"; if (period === Periods.ThreeMonths) difference = "-3 months"; if (period === Periods.SixMonths) difference = "-6 months"; const select = ` SELECT strftime('%w', created) as week, COUNT(*) as count FROM sets WHERE DATE(created) >= DATE('now', 'weekday 0', '${difference}') GROUP BY week HAVING week IS NOT NULL ORDER BY count DESC; `; AppDataSource.manager.query(select).then(setWeekCounts); }, [period]) ); return ( <> Most active days of the week