53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
'use client';
|
|
import { useEntityState, useStep } from './hooks';
|
|
import { type ContextType } from './types';
|
|
import { createContext, type PropsWithChildren, useMemo, useState } from 'react';
|
|
|
|
export const OrderContext = createContext<ContextType>({} as ContextType);
|
|
|
|
export function OrderContextProvider({ children }: Readonly<PropsWithChildren>) {
|
|
const { entityId: masterId, setEntityId: setMasterId } = useEntityState();
|
|
const { entityId: serviceId, setEntityId: setServiceId } = useEntityState();
|
|
const { entityId: clientId, setEntityId: setClientId } = useEntityState();
|
|
|
|
const [date, setDate] = useState<Date>(new Date());
|
|
const [time, setTime] = useState<null | string>(null);
|
|
|
|
const { nextStep, prevStep, setStep, step } = useStep();
|
|
|
|
const value = useMemo(
|
|
() => ({
|
|
clientId,
|
|
date,
|
|
masterId,
|
|
nextStep,
|
|
prevStep,
|
|
serviceId,
|
|
setClientId,
|
|
setDate,
|
|
setMasterId,
|
|
setServiceId,
|
|
setStep,
|
|
setTime,
|
|
step,
|
|
time,
|
|
}),
|
|
[
|
|
clientId,
|
|
date,
|
|
masterId,
|
|
nextStep,
|
|
prevStep,
|
|
serviceId,
|
|
setClientId,
|
|
setMasterId,
|
|
setServiceId,
|
|
setStep,
|
|
step,
|
|
time,
|
|
],
|
|
);
|
|
|
|
return <OrderContext.Provider value={value}>{children}</OrderContext.Provider>;
|
|
}
|