UNPKG

@oxyhq/services

Version:

Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀

29 lines (24 loc) • 1.15 kB
import { Platform } from 'react-native'; import * as WebSonner from 'sonner'; import * as NativeSonner from 'sonner-native'; // Define proper types for the toast components interface ToastFunction { (message: string, options?: Record<string, unknown>): void; success: (message: string, options?: Record<string, unknown>) => void; error: (message: string, options?: Record<string, unknown>) => void; info: (message: string, options?: Record<string, unknown>) => void; warning: (message: string, options?: Record<string, unknown>) => void; loading: (message: string, options?: Record<string, unknown>) => void; } type ToasterComponent = (props?: Record<string, unknown>) => React.ReactElement | null; const { toast: webToast, Toaster: WebToaster } = WebSonner as { toast: ToastFunction; Toaster: ToasterComponent; }; const { toast: nativeToast, Toaster: NativeToaster } = NativeSonner as { toast: ToastFunction; Toaster: ToasterComponent; }; export const toast = Platform.OS === 'web' ? webToast : nativeToast; export const Toaster = Platform.OS === 'web' ? WebToaster : NativeToaster; export type ToastT = typeof webToast;