From fd8f7b51e8b32f3a788d194b2744ce28061bfdb9 Mon Sep 17 00:00:00 2001 From: Developing-Gamer Date: Tue, 14 Jul 2026 11:08:36 -0700 Subject: [PATCH] Fix sticky header flicker while analytics tables scroll underneath. Restore document-level Cmd+K glow tracking and remove the dark-mode header underlay that caused compositing seams. Co-authored-by: Cursor --- .../projects/[projectId]/sidebar-layout.tsx | 7 ----- apps/dashboard/src/components/cmdk-search.tsx | 30 +++++++++---------- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/sidebar-layout.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/sidebar-layout.tsx index f9de99020..9e2cf81ce 100644 --- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/sidebar-layout.tsx +++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/sidebar-layout.tsx @@ -731,13 +731,6 @@ export default function SidebarLayout(props: { children?: React.ReactNode }) { WebkitMaskImage: 'linear-gradient(to bottom, black 50%, transparent 100%)', }} /> - {/* Opaque underlay for dark mode. Table/page content scrolls under this sticky - header; without a solid base, the translucent fill + backdrop-filter composite - a bright seam along the bottom edge whenever rows pass behind it. */} -
{/* Left section: Logo + Menu + Project Switcher */}
diff --git a/apps/dashboard/src/components/cmdk-search.tsx b/apps/dashboard/src/components/cmdk-search.tsx index 22b98ccbd..300098eb3 100644 --- a/apps/dashboard/src/components/cmdk-search.tsx +++ b/apps/dashboard/src/components/cmdk-search.tsx @@ -1005,21 +1005,20 @@ export function CmdKSearch({ // Trigger button component that can be placed in the header export function CmdKTrigger() { const mouseCursorRef = useRef(null); + const mouseCursorParentRef = useRef(null); const modifierKeyLabel = getShortcutModifierKeyLabel(); - const handleMouseMove = useCallback((event: React.MouseEvent) => { - const cursor = mouseCursorRef.current; - if (cursor == null) { - return; - } - - // Keep this glow local to the trigger. A document-level mousemove listener used to - // reposition a blurred layer under the translucent header on every cursor move across - // the page, continuously recompositing the sticky header while table rows scrolled - // behind it and making the header's bottom edge flicker. - const rect = event.currentTarget.getBoundingClientRect(); - cursor.style.left = `${event.clientX - rect.left}px`; - cursor.style.top = `${event.clientY - rect.top}px`; + useEffect(() => { + const handleMouseMove = (e: MouseEvent) => { + if (mouseCursorRef.current && mouseCursorParentRef.current) { + const rect = mouseCursorParentRef.current.getBoundingClientRect(); + mouseCursorRef.current.style.left = `${e.clientX - rect.left}px`; + mouseCursorRef.current.style.top = `${e.clientY - rect.top}px`; + mouseCursorRef.current.style.display = "block"; + } + }; + document.addEventListener("mousemove", handleMouseMove); + return () => document.removeEventListener("mousemove", handleMouseMove); }, []); return ( @@ -1027,7 +1026,6 @@ export function CmdKTrigger() {