From 8c1bd0426fd1855a7c14002aab08e79175265853 Mon Sep 17 00:00:00 2001 From: count0 Date: Fri, 17 Oct 2025 22:57:09 +0200 Subject: [PATCH] add loading screen --- src/pages/HomePage.jsx | 60 +++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 21 deletions(-) diff --git a/src/pages/HomePage.jsx b/src/pages/HomePage.jsx index ea1d7d7..df175ba 100644 --- a/src/pages/HomePage.jsx +++ b/src/pages/HomePage.jsx @@ -15,6 +15,8 @@ const HomePage = () => { const navigate = useNavigate(); const { toast } = useToast(); const [habits, setHabits] = useState([]); + const [loading, setLoading] = useState(true); + const [loggedIn, setLoggedIn] = useState(false); const [collapsedGroups, setCollapsedGroups] = useState({}); const [gitEnabled, setGitEnabled] = useState(getGitEnabled()); const [darkMode, setDarkMode] = useState(() => { @@ -23,13 +25,16 @@ const HomePage = () => { useEffect(() => { (async () => { + setLoading(true); // On login, pull remote habits into localStorage const user = await getAuthUser(); + setLoggedIn(!!user); if (user) { await syncRemoteToLocal(); } await loadHabits(); setGitEnabled(getGitEnabled()); + setLoading(false); })(); // Background sync every 10s if logged in const interval = setInterval(() => { @@ -326,29 +331,42 @@ const HomePage = () => { - {/* Empty State */} + {/* Empty State or Loading Buffer */} {habits.length === 0 && ( - -
- -
-

Create your grid!

-

- Create your first habit and watch your progress every day as you fill in the squares. Small steps lead to big changes! -

- -
+
+ +
+

Loading your habits...

+ + ) : ( + +
+ +
+

Create your grid!

+

+ Create your first habit and watch your progress every day as you fill in the squares. Small steps lead to big changes! +

+ +
+ ) )} {/* Add Button */}