feat: deal group and stuff

This commit is contained in:
2024-11-08 17:05:17 +03:00
parent a4f4d467e9
commit f5ead70051
27 changed files with 728 additions and 112 deletions

View File

@@ -4,30 +4,40 @@ import { DealSchema } from "../../../client";
type DealPageContextState = {
selectedDeal?: DealSchema;
setSelectedDeal: (deal: DealSchema | undefined) => void;
refetchDeals: () => Promise<void>;
};
const DealPageContext = createContext<DealPageContextState | undefined>(
undefined
undefined,
);
const useDealPageContextState = () => {
type DealPageContextStateProps = {
refetchDeals: () => Promise<void>;
}
const useDealPageContextState = (props: DealPageContextStateProps) => {
const { refetchDeals } = props;
const [selectedDeal, setSelectedDeal] = useState<DealSchema | undefined>(
undefined
undefined,
);
return {
selectedDeal,
setSelectedDeal,
refetchDeals,
};
};
type DealPageContextProviderProps = {
children: React.ReactNode;
refetchDeals: () => Promise<void>;
};
export const DealPageContextProvider: FC<DealPageContextProviderProps> = ({
children,
}) => {
const state = useDealPageContextState();
children,
refetchDeals,
}) => {
const state = useDealPageContextState({ refetchDeals });
return (
<DealPageContext.Provider value={state}>
{children}
@@ -39,7 +49,7 @@ export const useDealPageContext = () => {
const context = useContext(DealPageContext);
if (!context) {
throw new Error(
"useDealPageContext must be used within a DealPageContextProvider"
"useDealPageContext must be used within a DealPageContextProvider",
);
}
return context;