type RNToastySeverity = 'default' | 'warning' | 'danger' | 'success' interface ToastOptions { type?: ToastSeverity position?: 'top' | 'bottom' text1: string text2?: string visibilityTime?: number autoHide?: boolean topOffset?: number bottomOffset?: number onShow?: () => void onHide?: () => void } export enum ToastSeverity { SUCCESS = 'success', ERROR = 'error', INFO = 'info', } export class Toast { static show(message: string, severity: RNToastySeverity = 'default') { const toastData: ToastOptions = { // text1: i18n.t(`errors.toast.${severity}`), text1: severity, text2: message, type: transformSeverity(severity), visibilityTime: 4000, autoHide: true, position: 'bottom', bottomOffset: 50, } try { // ToastMessage.show(toastData) console.warn(toastData) } catch (e) { console.warn('Toast display failed') } } } const transformSeverity = (oldSeverity: RNToastySeverity): ToastSeverity => { switch (oldSeverity) { case 'success': return ToastSeverity.SUCCESS case 'warning': return ToastSeverity.ERROR case 'danger': return ToastSeverity.ERROR default: return ToastSeverity.INFO } }