From ac8bd1e66ea40c57aab3d853e0587f64e0bafd47 Mon Sep 17 00:00:00 2001 From: Juliet Date: Thu, 29 Jan 2026 04:30:15 +0100 Subject: [PATCH] favicon easter egg --- src/components/navbar.tsx | 44 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/src/components/navbar.tsx b/src/components/navbar.tsx index c17207a..7896485 100644 --- a/src/components/navbar.tsx +++ b/src/components/navbar.tsx @@ -32,6 +32,10 @@ const CopyButton = (props: { content: string; label: string }) => { export const NavBar = (props: { params: Params }) => { const [handle, setHandle] = createSignal(props.params.repo); + const [repoHovered, setRepoHovered] = createSignal(false); + const [hasHoveredRepo, setHasHoveredRepo] = createSignal(false); + const [faviconLoaded, setFaviconLoaded] = createSignal(false); + const isCustomDomain = () => handle() && !handle()!.endsWith(".bsky.social"); createEffect(() => { if (pds() !== undefined && props.params.repo) { @@ -43,6 +47,12 @@ export const NavBar = (props: { params: Params }) => { } }); + createEffect(() => { + handle(); + setHasHoveredRepo(false); + setFaviconLoaded(false); + }); + const rkeyTimestamp = createMemo(() => { if (!props.params.rkey || !TID.validate(props.params.rkey)) return undefined; const timestamp = TID.parse(props.params.rkey).timestamp / 1000; @@ -95,10 +105,40 @@ export const NavBar = (props: { params: Params }) => {
{/* Repository Level */} -
+
{ + setRepoHovered(true); + setHasHoveredRepo(true); + }} + onMouseLeave={() => setRepoHovered(false)} + >
- +
+ + +
+ +
+
+ + setFaviconLoaded(true)} + onError={() => setFaviconLoaded(false)} + /> + +