react-native-toast-notifications
Version:
[![Version][version-badge]][package] [![MIT License][license-badge]][license]
29 lines (22 loc) • 761 B
Flow
import React, { FC, useEffect, useRef, useState } from "react";
import ToastContext, { ToastType } from "./context";
import Toast, { Props } from "../toast-container";
type PropsWithChildren = Props & {
children: React.ReactNode;
}
export let GlobalToast: ToastType
const ToastProvider: FC<PropsWithChildren> = ({ children, ...props }) => {
const toastRef = useRef(null);
const [refState, setRefState] = useState({});
useEffect(() => {
setRefState(toastRef.current as any);
GlobalToast = toastRef.current as any
}, []);
return (
<ToastContext.Provider value={refState as any}>
{children}
<Toast ref={toastRef} {...props} />
</ToastContext.Provider>
);
};
export default ToastProvider;