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 Logo

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 = () => {