import { Circle, Coins, ArrowRight, CircleCheck, ChevronDown, ChevronUp } from 'lucide-react' import Link from 'next/link' import { useState } from 'react' import { useSettings } from '@/hooks/useSettings' import { getTodayInTimezone } from '@/lib/utils' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' import { Badge } from '@/components/ui/badge' import { Progress } from '@/components/ui/progress' import { WishlistItemType } from '@/lib/types' import { Habit } from '@/lib/types' interface UpcomingItemsProps { habits: Habit[] wishlistItems: WishlistItemType[] coinBalance: number onComplete: (habit: Habit) => void onUndo: (habit: Habit) => void } export default function DailyOverview({ habits, wishlistItems, coinBalance, onComplete, onUndo }: UpcomingItemsProps) { const { settings } = useSettings() const today = getTodayInTimezone(settings.system.timezone) const todayCompletions = habits.filter(habit => habit.completions.includes(today) ) // Filter daily habits const dailyHabits = habits.filter(habit => habit.frequency === 'daily') // Get achievable wishlist items sorted by coin cost const achievableWishlistItems = wishlistItems .filter(item => item.coinCost > coinBalance) .sort((a, b) => a.coinCost - b.coinCost) const [expandedHabits, setExpandedHabits] = useState(false) const [expandedWishlist, setExpandedWishlist] = useState(false) return ( Today's Overview

Daily Habits

{todayCompletions.length}/{dailyHabits.length} Complete
    {dailyHabits .sort((a, b) => { const aCompleted = todayCompletions.includes(a); const bCompleted = todayCompletions.includes(b); return aCompleted === bCompleted ? 0 : aCompleted ? 1 : -1; }) .slice(0, expandedHabits ? undefined : 3) .map((habit) => { const isCompleted = todayCompletions.includes(habit) return (
  • {habit.name} {habit.coinReward}
  • ) })}
View

Wishlist Goals

{wishlistItems.filter(item => item.coinCost <= coinBalance).length}/{wishlistItems.length} Redeemable
{achievableWishlistItems.length > 0 && (
{achievableWishlistItems .slice(0, expandedWishlist ? undefined : 1) .map((item) => (
{item.name} {item.coinCost}

{item.coinCost - coinBalance} coins to go

))}
)}
View
) }