// hooks/useHistoryFeed.ts import { useMemo } from "react"; import { mergeAndSort, filterByCategory, groupByDate, } from "@/lib/utils/history"; import { mapMoodToHistoryCard, mapSleepToHistoryCard, mapTriggerToHistoryCard, } from "@/lib/history/mappers"; import type { HistoryCategory } from "@/lib/history/types"; import { useMoodEntries, useSleepRecords, useTriggers } from "@/hooks"; export function useHistoryFeed(activeFilter: HistoryCategory | "all") { const { data: moodsPage } = useMoodEntries({}); const { data: sleepPage } = useSleepRecords({}); const { data: triggersPage } = useTriggers({}); const moods = moodsPage?.entries ?? []; const sleepRecords = sleepPage?.entries ?? []; const triggers = triggersPage?.entries ?? []; const grouped = useMemo(() => { const merged = mergeAndSort([ moods.map(mapMoodToHistoryCard), sleepRecords.map(mapSleepToHistoryCard), triggers.map(mapTriggerToHistoryCard), ]); console.log("Sleep records", sleepRecords) console.log("Merged data", merged) const filtered = filterByCategory(merged, activeFilter); return groupByDate(filtered); }, [moods, sleepRecords, triggers, activeFilter]); // TODO: expose the isLoading here return grouped; }