diff --git a/.gitignore b/.gitignore index a547bf3..a13576f 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,10 @@ dist-ssr *.njsproj *.sln *.sw? + +# Database files +*.db +*.db-journal +*.sqlite +*.sqlite3 +*.sqlite-journal diff --git a/habits.db b/habits.db index 8c6f5f8..0e4c2f4 100644 Binary files a/habits.db and b/habits.db differ diff --git a/src/components/Calendar.tsx b/src/components/Calendar.tsx index 60487b8..85e9b48 100644 --- a/src/components/Calendar.tsx +++ b/src/components/Calendar.tsx @@ -20,30 +20,32 @@ export function Calendar({ const daysOfWeek = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']; return ( -
-
+
+

{currentMonth.toLocaleString('default', { month: 'long', year: 'numeric' })}

-
+
{daysOfWeek.map(day => ( -
{day}
+
+ {day} +
))} {Array.from({ length: getDaysInMonth(currentMonth.getFullYear(), currentMonth.getMonth()) }).map((_, index) => { const date = new Date( @@ -52,19 +54,55 @@ export function Calendar({ index + 1 ).toISOString().split('T')[0]; const completedHabits = getCompletedHabitsForDate(date); + const incompleteHabits = habits.filter(habit => !habit.completedDates.includes(date)); return (
- {index + 1} - {completedHabits.length > 0 && ( -
-
-
-
- {completedHabits.map(habit => habit.name).join(', ')} + {index + 1} + {habits.length > 0 && ( +
+
+
0 + ? 'bg-green-500 shadow-sm shadow-green-200' + : 'bg-gray-300 dark:bg-gray-600' + } rounded-full transition-colors duration-200`} + /> +
+
+ {completedHabits.length > 0 && ( +
+ + ✓ Completed + +
    + {completedHabits.map(habit => ( +
  • + {habit.name} +
  • + ))} +
+
+ )} + {incompleteHabits.length > 0 && ( +
+ + ○ Pending + +
    + {incompleteHabits.map(habit => ( +
  • + {habit.name} +
  • + ))} +
+
+ )} +