feat: 기능 추가 과정중
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user