42 lines
No EOL
1.1 KiB
TypeScript
42 lines
No EOL
1.1 KiB
TypeScript
"use client";
|
|
|
|
import {createContext, useContext, type ReactNode} from "react";
|
|
import type {Order, OrderGroup} from "@/types/api";
|
|
|
|
type OrderDetailContextValue = {
|
|
data: OrderGroup | null;
|
|
error: string | null;
|
|
isLoading: boolean;
|
|
};
|
|
|
|
const OrderDetailContext = createContext<OrderDetailContextValue | undefined>(undefined);
|
|
|
|
export function OrderDetailProvider({
|
|
children,
|
|
order,
|
|
error = null,
|
|
}: {
|
|
children: ReactNode;
|
|
order: OrderGroup | null;
|
|
error?: string | null;
|
|
}) {
|
|
return (
|
|
<OrderDetailContext.Provider
|
|
value={{
|
|
data: order,
|
|
error,
|
|
isLoading: false,
|
|
}}
|
|
>
|
|
{children}
|
|
</OrderDetailContext.Provider>
|
|
);
|
|
}
|
|
|
|
export function useOrderDetail() {
|
|
const ctx = useContext(OrderDetailContext);
|
|
if (ctx === undefined) {
|
|
throw new Error("useOrderDetail must be used within OrderDetailProvider");
|
|
}
|
|
return ctx;
|
|
} |