import type { LoaderFunctionArgs } from "@remix-run/node"; import { Links, Meta, Outlet, Scripts, ScrollRestoration, useLoaderData } from "@remix-run/react"; import { Api } from "bknd"; import { ClientProvider } from "bknd/ui"; declare module "@remix-run/server-runtime" { export interface AppLoadContext { api: Api; } } export function Layout({ children }: { children: React.ReactNode }) { return ( {children} ); } export const loader = async (args: LoaderFunctionArgs) => { const api = new Api({ host: new URL(args.request.url).origin, headers: args.request.headers }); // add api to the context args.context.api = api; return { user: api.getAuthState().user }; }; export default function App() { const data = useLoaderData(); // add user to the client provider to indicate // that you're authed using cookie return ( ); }