Files
Hayden Bleasel 30cbcfec97 Migrate to Oxlint (#357)
* Migrate to oxlint / oxfmt

* Initial fixes

* Misc fixes

* Temporary fixes

* Update Ultracite

* Update .oxlintrc.json

* Update .oxlintrc.json

* Start running manual fixes

* Update .oxlintrc.json

* AI Fixes Part 2

* AI Fixes Part 3

* AI Fixes Part 4

* AI Fixes Part 5

* AI Fixes Part 6

* AI Fixes Part 7

* AI Fixes Part 8

* AI Fixes Part 9

* AI Fixes Part 10

* AI Fixes Part 11

* AI Fixes Part 12

* Fix tests

* Lint / test fixes

* Update chat.tsx

* Fix AI SDK React version

* Misc fixes

* Build fixes
2026-02-04 08:00:41 -08:00

66 lines
1.7 KiB
TypeScript

"use client";
import type { SharedProps } from "fumadocs-ui/contexts/search";
import type { ComponentProps } from "react";
import { Toaster } from "@repo/shadcn-ui/components/ui/sonner";
import { TooltipProvider } from "@repo/shadcn-ui/components/ui/tooltip";
import { useIsMobile } from "@repo/shadcn-ui/hooks/use-mobile";
import { cn } from "@repo/shadcn-ui/lib/utils";
import { Analytics } from "@vercel/analytics/next";
import { SpeedInsights } from "@vercel/speed-insights/next";
import { RootProvider } from "fumadocs-ui/provider/next";
import { useCallback } from "react";
import { useChatContext } from "@/hooks/geistdocs/use-chat";
import { i18n, i18nProvider } from "@/lib/geistdocs/i18n";
import { SearchDialog } from "./search";
type GeistdocsProviderProps = ComponentProps<typeof RootProvider> & {
basePath: string | undefined;
className?: string;
lang?: string;
};
export const GeistdocsProvider = ({
basePath,
search,
className,
lang = i18n.defaultLanguage,
...props
}: GeistdocsProviderProps) => {
const { isOpen } = useChatContext();
const isMobile = useIsMobile();
const isSidebarVisible = isOpen && !isMobile;
const SearchDialogComponent = useCallback(
(sdProps: SharedProps) => <SearchDialog basePath={basePath} {...sdProps} />,
[basePath]
);
return (
<div
className={cn(
"transition-all",
isSidebarVisible ? "pr-96!" : null,
className
)}
>
<TooltipProvider>
<RootProvider
i18n={i18nProvider(lang)}
search={{
SearchDialog: SearchDialogComponent,
...search,
}}
{...props}
/>
</TooltipProvider>
<Analytics />
<Toaster />
<SpeedInsights />
</div>
);
};