import { Link, useNavigation } from "@remix-run/react"; import { type ReactNode } from "react"; import { QuestionMarkIcon } from "~/assets/icons/QuestionMarkIcon"; import { OrgBanner } from "../billing/OrgBanner"; import { BreadcrumbIcon } from "./BreadcrumbIcon"; import { Header2 } from "./Headers"; import { LoadingBarDivider } from "./LoadingBarDivider"; import { SimpleTooltip } from "./Tooltip"; import { DashboardAgentLauncher } from "../dashboard-agent/dashboardAgentLauncher"; type WithChildren = { children: React.ReactNode; className?: string; }; export function NavBar({ children }: WithChildren) { const navigation = useNavigation(); const isLoading = navigation.state === "loading" || navigation.state === "submitting"; return (
{children}
); } type PageTitleProps = { title: ReactNode; backButton?: { to: string; text: string; }; /** * Renders to the right of the title. * - Pass a string → a question-mark icon with the string as its hover tooltip. * - Pass a ReactNode → rendered verbatim, for custom adornments. */ accessory?: ReactNode; }; export function PageTitle({ title, backButton, accessory }: PageTitleProps) { return (
{backButton && (
{backButton.text}
)} {title} {accessory !== undefined && (typeof accessory === "string" ? ( } content={accessory} className="max-w-xs" disableHoverableContent /> ) : ( accessory ))}
); } export function PageAccessories({ children }: WithChildren) { return
{children}
; }