import { useState } from "react" import { Dimensions, ScrollView } from "react-native" import { List } from "react-native-paper" import type { GoalFrequency } from "@/domain/entities/Goal" import { GOAL_FREQUENCIES } from "@/domain/entities/Goal" import type { HabitsTracker } from "@/domain/entities/HabitsTracker" import { capitalize } from "@/utils/strings" import { HabitCard } from "./HabitCard" import { HabitsEmpty } from "./HabitsEmpty" export interface HabitsListProps { habitsTracker: HabitsTracker selectedDate: Date } export const HabitsList: React.FC = (props) => { const { habitsTracker, selectedDate } = props const frequenciesFiltered = GOAL_FREQUENCIES.filter((frequency) => { return habitsTracker.habitsHistory[frequency].length > 0 }) const [accordionExpanded, setAccordionExpanded] = useState<{ [key in GoalFrequency]: boolean }>({ daily: true, weekly: true, monthly: true, }) if (frequenciesFiltered.length <= 0) { return } return ( {frequenciesFiltered.map((frequency) => { return ( { setAccordionExpanded((old) => { return { ...old, [frequency]: !old[frequency], } }) }} key={frequency} title={capitalize(frequency)} titleStyle={[ { fontSize: 26, }, ]} > {habitsTracker.habitsHistory[frequency].map((item) => { const goalProgress = item.getGoalProgressByDate(selectedDate) return ( ) })} ) })} ) }