diff --git a/index.html b/index.html
index e57b7cf..804373c 100644
--- a/index.html
+++ b/index.html
@@ -5,7 +5,7 @@
Habit Tracker App
-
+
diff --git a/public/assets/fav.png b/public/assets/fav.png
new file mode 100644
index 0000000..9ed4f30
Binary files /dev/null and b/public/assets/fav.png differ
diff --git a/public/assets/logo.png b/public/assets/logo.png
new file mode 100644
index 0000000..91770b7
Binary files /dev/null and b/public/assets/logo.png differ
diff --git a/src/pages/HomePage.jsx b/src/pages/HomePage.jsx
index 4e87fe8..33ab1c7 100644
--- a/src/pages/HomePage.jsx
+++ b/src/pages/HomePage.jsx
@@ -1,7 +1,7 @@
import React, { useState, useEffect } from 'react';
import { useNavigate } from 'react-router-dom';
import { motion, AnimatePresence } from 'framer-motion';
-import { Plus, Settings, TrendingUp, Flame, Calendar } from 'lucide-react';
+import { Plus, Settings, TrendingUp, Flame, Calendar, Moon, Sun } from 'lucide-react';
import { Button } from '../components/ui/button';
import { useToast } from '../components/ui/use-toast';
import HabitCard from '../components/HabitCard';
@@ -12,11 +12,24 @@ const HomePage = () => {
const { toast } = useToast();
const [habits, setHabits] = useState([]);
const [isPremium] = useState(false);
+ const [darkMode, setDarkMode] = useState(() => {
+ return localStorage.getItem('theme') === 'dark';
+ });
useEffect(() => {
loadHabits();
}, []);
+ useEffect(() => {
+ if (darkMode) {
+ document.documentElement.classList.add('dark');
+ localStorage.setItem('theme', 'dark');
+ } else {
+ document.documentElement.classList.remove('dark');
+ localStorage.setItem('theme', 'light');
+ }
+ }, [darkMode]);
+
const loadHabits = () => {
const loadedHabits = getHabits();
setHabits(loadedHabits);
@@ -44,13 +57,7 @@ const HomePage = () => {
className="flex items-center justify-between mb-8"
>
-
-
- {[...Array(11)].map((_, i) => (
-
- ))}
-
-
+
HabitGrid
@@ -58,14 +65,25 @@ const HomePage = () => {
Commit to yourself, one square at a time
-
+
+
+
+
{/* Stats Overview */}
diff --git a/src/pages/SettingsPage.jsx b/src/pages/SettingsPage.jsx
index f7a5350..a0a5b76 100644
--- a/src/pages/SettingsPage.jsx
+++ b/src/pages/SettingsPage.jsx
@@ -11,23 +11,23 @@ import { exportData, importData, clearAllData } from '../lib/storage';
const SettingsPage = () => {
const navigate = useNavigate();
const { toast } = useToast();
- const [darkMode, setDarkMode] = useState(false);
+ const [darkMode, setDarkMode] = useState(() => {
+ return localStorage.getItem('theme') === 'dark';
+ });
const [notifications, setNotifications] = useState(false);
useEffect(() => {
- const isDark = document.documentElement.classList.contains('dark');
- setDarkMode(isDark);
- }, []);
-
- const toggleDarkMode = (enabled) => {
- setDarkMode(enabled);
- if (enabled) {
+ if (darkMode) {
document.documentElement.classList.add('dark');
localStorage.setItem('theme', 'dark');
} else {
document.documentElement.classList.remove('dark');
localStorage.setItem('theme', 'light');
}
+ }, [darkMode]);
+
+ const toggleDarkMode = (enabled) => {
+ setDarkMode(enabled);
};
const handleExport = () => {