import { Outlet } from "react-router-dom"; import { useIsFetching } from "@tanstack/react-query"; import { cn } from "@/lib/utils"; import { Sidebar } from "./Sidebar"; import { SkipLink } from "@/components/ui/skip-link"; import { SearchBar } from "./SearchBar"; /** * App shell. Three columns: * - Sidebar (240px, fixed) * - Top bar (sticky, lightweight utility row) * - Outlet (page content, max-w-[1400px] centered) * * The hairline scan element at the very top of the viewport is a 1px * line that slides an accent bar across the entire width whenever * the React Query layer has an in-flight request. The intent is to * surface "we're doing something" without a spinner — a moving line * reads as a sensor sweep, not a loading state. */ export function Layout() { const isFetching = useIsFetching(); const showScan = isFetching > 0; return (