mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-18 23:43:55 +01:00
Add .oxfmtignore to skip generated bindings and wasm-pack output. Add npm format script, update DEVELOPMENT.md for Vite+ toolchain, and format all non-generated files with oxfmt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
import { QueryClientProvider } from "@tanstack/react-query";
|
|
import { createRootRoute, Outlet } from "@tanstack/react-router";
|
|
import { type } from "@tauri-apps/plugin-os";
|
|
import classNames from "classnames";
|
|
import { Provider as JotaiProvider } from "jotai";
|
|
import { LazyMotion, MotionConfig } from "motion/react";
|
|
import { lazy, Suspense } from "react";
|
|
import { GlobalHooks } from "../components/GlobalHooks";
|
|
import RouteError from "../components/RouteError";
|
|
import { jotaiStore } from "../lib/jotai";
|
|
import { queryClient } from "../lib/queryClient";
|
|
|
|
const Toasts = lazy(() => import("../components/Toasts").then((m) => ({ default: m.Toasts })));
|
|
const Dialogs = lazy(() => import("../components/Dialogs").then((m) => ({ default: m.Dialogs })));
|
|
|
|
export const Route = createRootRoute({
|
|
component: RouteComponent,
|
|
errorComponent: RouteError,
|
|
});
|
|
|
|
const motionFeatures = () => import("framer-motion").then((mod) => mod.domAnimation);
|
|
|
|
function RouteComponent() {
|
|
return (
|
|
<JotaiProvider store={jotaiStore}>
|
|
<QueryClientProvider client={queryClient}>
|
|
<LazyMotion strict features={motionFeatures}>
|
|
<MotionConfig transition={{ duration: 0.1 }}>
|
|
<Suspense>
|
|
<Toasts />
|
|
<Dialogs />
|
|
</Suspense>
|
|
<Layout />
|
|
<GlobalHooks />
|
|
</MotionConfig>
|
|
</LazyMotion>
|
|
</QueryClientProvider>
|
|
</JotaiProvider>
|
|
);
|
|
}
|
|
|
|
function Layout() {
|
|
return (
|
|
<div
|
|
className={classNames("w-full h-full", type() === "linux" && "border border-border-subtle")}
|
|
>
|
|
<Outlet />
|
|
</div>
|
|
);
|
|
}
|