import React, { useEffect } from 'react'; import { StyleSheet } from 'react-native'; import EasyToast from 'react-native-easy-toast'; import EventEmitter from '../lib/methods/helpers/events'; import { useTheme } from '../theme'; import sharedStyles from '../views/Styles'; const styles = StyleSheet.create({ toast: { maxWidth: 300, padding: 10 }, text: { fontSize: 14, ...sharedStyles.textRegular, ...sharedStyles.textAlignCenter } }); export const LISTENER = 'Toast'; let listener: Function; let toast: EasyToast | null | undefined; const Toast = (): React.ReactElement => { const { colors } = useTheme(); useEffect(() => { listener = EventEmitter.addEventListener(LISTENER, showToast); return () => { EventEmitter.removeListener(LISTENER, listener); }; }, []); const getToastRef = (newToast: EasyToast | null) => (toast = newToast); const showToast = ({ message }: { message: string }) => { if (toast && toast.show) { toast.show(message, 1000); } }; return ( ); }; export default Toast;