Files
clean-architecture-frontend…/src/presentation/routes/route-input.tsx
T

30 lines
641 B
TypeScript

import {
createContext,
type ReactNode,
useContext,
} from "react";
import type { ParsedRouteInput } from "./route-contract.ts";
const RouteInputContext = createContext<ParsedRouteInput | null>(null);
export function RouteInputProvider({
input,
children,
}: Readonly<{
input: ParsedRouteInput;
children: ReactNode;
}>) {
return (
<RouteInputContext.Provider value={input}>
{children}
</RouteInputContext.Provider>
);
}
export function useRouteInput(): ParsedRouteInput {
const input = useContext(RouteInputContext);
if (!input) throw new Error("Registered route input is required");
return input;
}