From a8481b8f7cae6806ba0a935c3d5ae3f05ca8d3f8 Mon Sep 17 00:00:00 2001 From: Michael Freno Date: Fri, 19 Dec 2025 00:20:47 -0500 Subject: [PATCH] all ready for home details --- src/components/Bars.tsx | 189 +++++++++++------------------- src/components/DarkModeToggle.tsx | 60 ++++++++++ 2 files changed, 127 insertions(+), 122 deletions(-) create mode 100644 src/components/DarkModeToggle.tsx diff --git a/src/components/Bars.tsx b/src/components/Bars.tsx index 11e076d..b84d39d 100644 --- a/src/components/Bars.tsx +++ b/src/components/Bars.tsx @@ -1,97 +1,59 @@ import { Typewriter } from "./Typewriter"; import { useBars } from "~/context/bars"; -import { onMount, createEffect, createSignal, Show, For } from "solid-js"; +import { + onMount, + createEffect, + createSignal, + createResource, + Show, + For, + Suspense +} from "solid-js"; import { api } from "~/lib/api"; import { TerminalSplash } from "./TerminalSplash"; import { insertSoftHyphens } from "~/lib/client-utils"; import GitHub from "./icons/GitHub"; import LinkedIn from "./icons/LinkedIn"; -import MoonIcon from "./icons/MoonIcon"; -import SunIcon from "./icons/SunIcon"; import { RecentCommits } from "./RecentCommits"; import { ActivityHeatmap } from "./ActivityHeatmap"; +import { DarkModeToggle } from "./DarkModeToggle"; export function RightBarContent() { - const [isDark, setIsDark] = createSignal(false); - const [githubCommits, setGithubCommits] = createSignal( - undefined - ); - const [giteaCommits, setGiteaCommits] = createSignal( - undefined - ); - const [githubActivity, setGithubActivity] = createSignal( - undefined - ); - const [giteaActivity, setGiteaActivity] = createSignal( - undefined - ); - - onMount(async () => { - const prefersDark = window.matchMedia( - "(prefers-color-scheme: dark)" - ).matches; - - if (prefersDark) { - setIsDark(true); - document.documentElement.classList.add("dark"); - document.documentElement.classList.remove("light"); - } else { - setIsDark(false); - document.documentElement.classList.add("light"); - document.documentElement.classList.remove("dark"); - } - - // Fetch GitHub activity + const [githubCommits] = createResource(async () => { try { - const commits = await api.gitActivity.getGitHubCommits.query({ - limit: 3 - }); - setGithubCommits(commits as any[]); + return await api.gitActivity.getGitHubCommits.query({ limit: 3 }); } catch (error) { console.error("Failed to fetch GitHub commits:", error); - setGithubCommits([]); - } - - try { - const activity = await api.gitActivity.getGitHubActivity.query(); - setGithubActivity(activity as any[]); - } catch (error) { - console.error("Failed to fetch GitHub activity:", error); - setGithubActivity([]); - } - - // Fetch Gitea activity - try { - const commits = await api.gitActivity.getGiteaCommits.query({ - limit: 3 - }); - setGiteaCommits(commits as any[]); - } catch (error) { - console.error("Failed to fetch Gitea commits:", error); - setGiteaCommits([]); - } - - try { - const activity = await api.gitActivity.getGiteaActivity.query(); - setGiteaActivity(activity as any[]); - } catch (error) { - console.error("Failed to fetch Gitea activity:", error); - setGiteaActivity([]); + return []; } }); - const toggleDarkMode = () => { - const newDarkMode = !isDark(); - setIsDark(newDarkMode); - - if (newDarkMode) { - document.documentElement.classList.add("dark"); - document.documentElement.classList.remove("light"); - } else { - document.documentElement.classList.add("light"); - document.documentElement.classList.remove("dark"); + const [giteaCommits] = createResource(async () => { + try { + return await api.gitActivity.getGiteaCommits.query({ limit: 3 }); + } catch (error) { + console.error("Failed to fetch Gitea commits:", error); + return []; } - }; + }); + + const [githubActivity] = createResource(async () => { + try { + return await api.gitActivity.getGitHubActivity.query(); + } catch (error) { + console.error("Failed to fetch GitHub activity:", error); + return []; + } + }); + + const [giteaActivity] = createResource(async () => { + try { + return await api.gitActivity.getGiteaActivity.query(); + } catch (error) { + console.error("Failed to fetch Gitea activity:", error); + return []; + } + }); return (
@@ -149,53 +111,31 @@ export function RightBarContent() { {/* Git Activity Section */} -
- - -
- Self-hosted Git! + }> +
+ + + + +
- - -
- - {/* Dark Mode Toggle */} -
- -
+
); } @@ -434,6 +374,11 @@ export function LeftBar() { + {/* Dark Mode Toggle */} +
+ +
+ {/* RightBar content on mobile */}
diff --git a/src/components/DarkModeToggle.tsx b/src/components/DarkModeToggle.tsx new file mode 100644 index 0000000..a0e27f9 --- /dev/null +++ b/src/components/DarkModeToggle.tsx @@ -0,0 +1,60 @@ +import { createSignal, onMount, Show } from "solid-js"; +import MoonIcon from "./icons/MoonIcon"; +import SunIcon from "./icons/SunIcon"; +import { Typewriter } from "./Typewriter"; + +export function DarkModeToggle() { + const [isDark, setIsDark] = createSignal(false); + + onMount(() => { + const prefersDark = window.matchMedia( + "(prefers-color-scheme: dark)" + ).matches; + + if (prefersDark) { + setIsDark(true); + document.documentElement.classList.add("dark"); + document.documentElement.classList.remove("light"); + } else { + setIsDark(false); + document.documentElement.classList.add("light"); + document.documentElement.classList.remove("dark"); + } + }); + + const toggleDarkMode = () => { + const newDarkMode = !isDark(); + setIsDark(newDarkMode); + + if (newDarkMode) { + document.documentElement.classList.add("dark"); + document.documentElement.classList.remove("light"); + } else { + document.documentElement.classList.add("light"); + document.documentElement.classList.remove("dark"); + } + }; + + return ( + + ); +}