From 977f3d08136bbcc1b181bacf42078c06f7886baf Mon Sep 17 00:00:00 2001 From: waleed Date: Mon, 13 Apr 2026 10:43:12 -0700 Subject: [PATCH 1/2] fix(navbar): eliminate auth button flash using useSyncExternalStore --- .../navbar/components/github-stars.tsx | 2 +- .../(landing)/components/navbar/navbar.tsx | 27 ++++++++++++------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/apps/sim/app/(landing)/components/navbar/components/github-stars.tsx b/apps/sim/app/(landing)/components/navbar/components/github-stars.tsx index e4031719b2a..a8aafdc45a3 100644 --- a/apps/sim/app/(landing)/components/navbar/components/github-stars.tsx +++ b/apps/sim/app/(landing)/components/navbar/components/github-stars.tsx @@ -7,7 +7,7 @@ import { getFormattedGitHubStars } from '@/app/(landing)/actions/github' const logger = createLogger('github-stars') -const INITIAL_STARS = '27.6k' +const INITIAL_STARS = '27.7k' /** * Client component that displays GitHub stars count. diff --git a/apps/sim/app/(landing)/components/navbar/navbar.tsx b/apps/sim/app/(landing)/components/navbar/navbar.tsx index 7e8d7342616..16dab58c072 100644 --- a/apps/sim/app/(landing)/components/navbar/navbar.tsx +++ b/apps/sim/app/(landing)/components/navbar/navbar.tsx @@ -1,6 +1,6 @@ 'use client' -import { useCallback, useEffect, useRef, useState } from 'react' +import { useCallback, useEffect, useRef, useState, useSyncExternalStore } from 'react' import Image from 'next/image' import Link from 'next/link' import { useSearchParams } from 'next/navigation' @@ -38,6 +38,8 @@ const NAV_LINKS: NavLink[] = [ const LOGO_CELL = 'flex items-center pl-5 lg:pl-16 pr-5' const LINK_CELL = 'flex items-center px-3.5' +const emptySubscribe = () => () => {} + interface NavbarProps { logoOnly?: boolean blogPosts?: NavBlogPost[] @@ -51,6 +53,12 @@ export default function Navbar({ logoOnly = false, blogPosts = [] }: NavbarProps const isBrowsingHome = searchParams.has('home') const useHomeLinks = isAuthenticated || isBrowsingHome const logoHref = useHomeLinks ? '/?home' : '/' + const mounted = useSyncExternalStore( + emptySubscribe, + () => true, + () => false + ) + const shouldShow = mounted && !isSessionPending const [activeDropdown, setActiveDropdown] = useState(null) const [mobileMenuOpen, setMobileMenuOpen] = useState(false) const closeTimerRef = useRef | null>(null) @@ -206,9 +214,10 @@ export default function Navbar({ logoOnly = false, blogPosts = [] }: NavbarProps
{isAuthenticated ? ( @@ -326,7 +335,11 @@ export default function Navbar({ logoOnly = false, blogPosts = [] }: NavbarProps
{isAuthenticated ? ( From 73e12564e6fce7640c16351331050254896ebac4 Mon Sep 17 00:00:00 2001 From: waleed Date: Mon, 13 Apr 2026 10:47:52 -0700 Subject: [PATCH 2/2] fix(navbar): add inert and fix aria-hidden on auth button containers --- apps/sim/app/(landing)/components/navbar/navbar.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/sim/app/(landing)/components/navbar/navbar.tsx b/apps/sim/app/(landing)/components/navbar/navbar.tsx index 16dab58c072..54579bc173e 100644 --- a/apps/sim/app/(landing)/components/navbar/navbar.tsx +++ b/apps/sim/app/(landing)/components/navbar/navbar.tsx @@ -214,7 +214,8 @@ export default function Navbar({ logoOnly = false, blogPosts = [] }: NavbarProps