diff --git a/src/components/AnalysisBanner.jsx b/src/components/AnalysisBanner.jsx index c87f3ab..b9b6be9 100644 --- a/src/components/AnalysisBanner.jsx +++ b/src/components/AnalysisBanner.jsx @@ -16,6 +16,7 @@ export default function AnalysisBanner({ page, description, onRun, loading = fal return ( <>
0 + const [mobileMenuOpen, setMobileMenuOpen] = useState(false) + const [isOverflowing, setIsOverflowing] = useState(false) + const navbarRef = useRef(null) + const linksRef = useRef(null) + const menuToggleRef = useRef(null) const lowLimit = rateLimit && rateLimit.remaining < 15 + useEffect(() => { + const navbar = navbarRef.current + const links = linksRef.current + const menuToggle = menuToggleRef.current + if (!navbar || !links || !menuToggle) return + + const measureOverflow = () => { + const wasOverflowing = links.classList.contains('navbar-links-overflowing') + links.classList.remove('navbar-links-overflowing') + menuToggle.classList.remove('navbar-menu-toggle-visible') + const nextOverflowing = links.scrollWidth > links.clientWidth + if (wasOverflowing) { + links.classList.add('navbar-links-overflowing') + menuToggle.classList.add('navbar-menu-toggle-visible') + } + setIsOverflowing(current => current === nextOverflowing ? current : nextOverflowing) + } + + const observer = new ResizeObserver(measureOverflow) + observer.observe(navbar) + observer.observe(links) + measureOverflow() + return () => observer.disconnect() + }, []) + + useEffect(() => { + if (!isOverflowing) setMobileMenuOpen(false) + }, [isOverflowing]) + return ( - ) } diff --git a/src/components/RateLimitBanner.jsx b/src/components/RateLimitBanner.jsx index b09369d..99bf704 100644 --- a/src/components/RateLimitBanner.jsx +++ b/src/components/RateLimitBanner.jsx @@ -15,17 +15,20 @@ export default function RateLimitBanner() { const Icon = crit ? FiAlertTriangle : FiZap return ( -
- - - API RATE LIMIT: {rateLimit.remaining} / {rateLimit.limit} REQUESTS REMAINING + + + + API RATE LIMIT: {rateLimit.remaining} / {rateLimit.limit} REQUESTS REMAINING + {!pat && ( navigate('/settings')} style={{ color: 'var(--accent)', marginLeft: 10, cursor: 'pointer', fontWeight: 600 }} > @@ -33,7 +36,7 @@ export default function RateLimitBanner() { )} - + Used: {rateLimit.used} • Reset at{' '} {new Date(rateLimit.reset * 1000).toLocaleTimeString()} diff --git a/src/components/layout/Footer.jsx b/src/components/layout/Footer.jsx index 3041221..0bc9b85 100644 --- a/src/components/layout/Footer.jsx +++ b/src/components/layout/Footer.jsx @@ -31,7 +31,7 @@ const footerLinks = [ }, { label: "Support Us", - href:"/support-us" + href: "/support-us" } ]; @@ -71,23 +71,23 @@ const socialLinks = [ export default function Footer() { const { theme } = useTheme(); return ( -