feat: open deal by id
This commit is contained in:
		@@ -1,5 +1,5 @@
 | 
			
		||||
import { createContext, FC, useContext, useState } from "react";
 | 
			
		||||
import { DealSchema } from "../../../client";
 | 
			
		||||
import { createContext, FC, useContext, useEffect, useState } from "react";
 | 
			
		||||
import { DealSchema, DealService } from "../../../client";
 | 
			
		||||
 | 
			
		||||
type DealPageContextState = {
 | 
			
		||||
    selectedDeal?: DealSchema;
 | 
			
		||||
@@ -13,14 +13,23 @@ const DealPageContext = createContext<DealPageContextState | undefined>(
 | 
			
		||||
 | 
			
		||||
type DealPageContextStateProps = {
 | 
			
		||||
    refetchDeals: () => Promise<void>;
 | 
			
		||||
    defaultDealId?: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const useDealPageContextState = (props: DealPageContextStateProps) => {
 | 
			
		||||
    const { refetchDeals } = props;
 | 
			
		||||
    const { refetchDeals, defaultDealId } = props;
 | 
			
		||||
    const [selectedDeal, setSelectedDeal] = useState<DealSchema | undefined>(
 | 
			
		||||
        undefined,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    useEffect(() => {
 | 
			
		||||
        if (!defaultDealId)
 | 
			
		||||
            return;
 | 
			
		||||
        DealService.getDealById({ dealId: defaultDealId }).then(deal => {
 | 
			
		||||
            setSelectedDeal(deal);
 | 
			
		||||
 | 
			
		||||
        });
 | 
			
		||||
    }, []);
 | 
			
		||||
    return {
 | 
			
		||||
        selectedDeal,
 | 
			
		||||
        setSelectedDeal,
 | 
			
		||||
@@ -31,13 +40,15 @@ const useDealPageContextState = (props: DealPageContextStateProps) => {
 | 
			
		||||
type DealPageContextProviderProps = {
 | 
			
		||||
    children: React.ReactNode;
 | 
			
		||||
    refetchDeals: () => Promise<void>;
 | 
			
		||||
    defaultDealId?: number;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const DealPageContextProvider: FC<DealPageContextProviderProps> = ({
 | 
			
		||||
                                                                              children,
 | 
			
		||||
                                                                              refetchDeals,
 | 
			
		||||
                                                                              defaultDealId,
 | 
			
		||||
                                                                          }) => {
 | 
			
		||||
    const state = useDealPageContextState({ refetchDeals });
 | 
			
		||||
    const state = useDealPageContextState({ refetchDeals, defaultDealId });
 | 
			
		||||
    return (
 | 
			
		||||
        <DealPageContext.Provider value={state}>
 | 
			
		||||
            {children}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user