UNPKG

react-native-image-toast

Version:
46 lines (34 loc) 1.11 kB
import React from 'react' import RootSiblings from 'react-native-root-siblings' import ToastView from "./ToastView" import {ToastDuration,ToastPosition,ToastDefaultOpt} from '../data/Constants' let rootSiblings = undefined let liftCycleManage = undefined export default class Toast { static duration = ToastDuration static position = ToastPosition static show = (toastOpts) => { const data = toastOpts.data if (typeof data !== 'string' || data.length <= 0) { return } toastOpts = Object.assign({},ToastDefaultOpt,toastOpts) Toast.hide(); rootSiblings = new RootSiblings( <ToastView {...toastOpts}/> ) liftCycleManage = setTimeout(()=>{ Toast.hide() }, toastOpts.duration+toastOpts.toastInOutDuration*2) } static hide = () => { if (liftCycleManage) { clearTimeout(liftCycleManage) liftCycleManage = undefined } if (rootSiblings) { rootSiblings.destroy() rootSiblings = undefined } } }