Skip to content
Snippets Groups Projects
Select Git revision
  • b61865f726185c0d2eb3c0441aa28e786ea8af07
  • main default protected
  • history
3 results

index.tsx

Blame
  • Forked from ajou-pay / client-user
    Source project has a limited visibility.
    index.tsx 1.00 KiB
    import { createContext, useEffect, useState } from "react";
    
    import type { ToastData } from "../../components/toast/config";
    import type { FC, ReactNode } from "react";
    
    interface ToastContextType {
    	toastItem: ToastData | null
    	setToastItem: (d: ToastData | null) => void;
    }
    
    const ToastContext = createContext<ToastContextType>({
        toastItem: null,
        setToastItem: (d) => { return d; },
    });
    
    interface pProps { children: ReactNode; }
    const ToastProvider: FC<pProps> = ({ children }) => {
        const [item, setItem] = useState<ToastContextType['toastItem']>(null);
    	
    	
        useEffect(() => {
            console.log('GLOBAL ToastProvider: ', item);
        }, [item]);
    	
    	
        const setToastItem = (toastItem: ToastData | null) => {
            setItem(toastItem);
        };
    	
    	
        return (
            <ToastContext.Provider
                value={{
                    toastItem: item,
                    setToastItem,
                }}
            >
                { children }
            </ToastContext.Provider>
        );
    };
    
    export { ToastProvider, ToastContext };