diff --git a/habits.db b/habits.db
index 0e4c2f4..182af38 100644
Binary files a/habits.db and b/habits.db differ
diff --git a/src/App.tsx b/src/App.tsx
index cd59938..5d0d5ec 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -151,6 +151,21 @@ export default function HabitTracker() {
return streak;
};
+ const handleUpdateStreak = async (id: number, newStreak: number) => {
+ // Prevent negative streaks
+ if (newStreak < 0) return;
+
+ // Update in database
+ await db.habits.update(id, { manualStreak: newStreak });
+
+ // Update state
+ setHabits(habits.map(habit =>
+ habit.id === id
+ ? { ...habit, manualStreak: newStreak }
+ : habit
+ ));
+ };
+
return (
@@ -246,7 +261,7 @@ export default function HabitTracker() {
onToggleHabit={toggleHabit}
onUpdateHabit={updateHabit}
onDeleteHabit={deleteHabit}
- getStreakForHabit={getStreakForHabit}
+ onUpdateStreak={handleUpdateStreak}
/>
diff --git a/src/components/HabitList.tsx b/src/components/HabitList.tsx
index c84fbd6..d6a19e2 100644
--- a/src/components/HabitList.tsx
+++ b/src/components/HabitList.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Trash2 } from 'lucide-react';
+import { Trash2, ChevronUp, ChevronDown } from 'lucide-react';
import { Habit } from '../types';
interface HabitListProps {
@@ -9,7 +9,7 @@ interface HabitListProps {
onToggleHabit: (id: number, date: string) => void;
onUpdateHabit: (id: number, name: string) => void;
onDeleteHabit: (id: number) => void;
- getStreakForHabit: (habit: Habit) => number;
+ onUpdateStreak: (id: number, streak: number) => void;
}
export function HabitList({
@@ -19,7 +19,7 @@ export function HabitList({
onToggleHabit,
onUpdateHabit,
onDeleteHabit,
- getStreakForHabit
+ onUpdateStreak
}: HabitListProps) {
return (
@@ -34,7 +34,7 @@ export function HabitList({
))}
- | Streak |
+ Manual Streak |
Actions |
@@ -59,8 +59,24 @@ export function HabitList({
/>
))}
-
- {getStreakForHabit(habit)}
+ |
+
+
+
+ {habit.manualStreak || 0}
+
+
+
|
|