UNPKG

react-native-turbo-toast

Version:

High-performance toast notifications for React Native with TurboModules

243 lines (234 loc) 7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { show: true, hide: true, hideAll: true, update: true, configure: true, destroy: true, isActive: true, getActiveToasts: true, getQueuedToasts: true, getQueueStats: true, clearGroup: true, findByGroup: true, updateToast: true, reorderToast: true, pauseQueue: true, resumeQueue: true, getToastPosition: true, success: true, error: true, warning: true, info: true, loading: true, promise: true, showProgress: true, updateProgress: true, TurboToastView: true, toastAnalytics: true, ConsoleAnalyticsProvider: true, CustomAnalyticsProvider: true }; Object.defineProperty(exports, "ConsoleAnalyticsProvider", { enumerable: true, get: function () { return _analytics.ConsoleAnalyticsProvider; } }); Object.defineProperty(exports, "CustomAnalyticsProvider", { enumerable: true, get: function () { return _analytics.CustomAnalyticsProvider; } }); Object.defineProperty(exports, "TurboToastView", { enumerable: true, get: function () { return _TurboToastView.default; } }); exports.success = exports.showProgress = exports.show = exports.resumeQueue = exports.reorderToast = exports.promise = exports.pauseQueue = exports.loading = exports.isActive = exports.info = exports.hideAll = exports.hide = exports.getToastPosition = exports.getQueuedToasts = exports.getQueueStats = exports.getActiveToasts = exports.findByGroup = exports.error = exports.destroy = exports.default = exports.configure = exports.clearGroup = void 0; Object.defineProperty(exports, "toastAnalytics", { enumerable: true, get: function () { return _analytics.toastAnalytics; } }); exports.warning = exports.updateToast = exports.updateProgress = exports.update = void 0; var _manager = require("./manager"); var _TurboToastView = _interopRequireDefault(require("./TurboToastView")); var _analytics = require("./analytics"); var _types = require("./types"); Object.keys(_types).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; if (key in exports && exports[key] === _types[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function () { return _types[key]; } }); }); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } // Re-export types // Create singleton instance const Toast = _manager.ToastManager.getInstance(); // Export functions const show = options => Toast.show(options); exports.show = show; const hide = id => Toast.hide(id); exports.hide = hide; const hideAll = () => Toast.hideAll(); exports.hideAll = hideAll; const update = (id, options) => Toast.update(id, options); exports.update = update; const configure = options => Toast.configure(options); exports.configure = configure; const destroy = () => Toast.destroy(); exports.destroy = destroy; const isActive = id => Toast.isActive(id); exports.isActive = isActive; const getActiveToasts = () => Toast.getActiveToasts(); exports.getActiveToasts = getActiveToasts; const getQueuedToasts = () => Toast.getQueuedToasts(); // Advanced queue management exports.getQueuedToasts = getQueuedToasts; const getQueueStats = () => Toast.getQueueStats(); exports.getQueueStats = getQueueStats; const clearGroup = group => Toast.clearGroup(group); exports.clearGroup = clearGroup; const findByGroup = group => Toast.findByGroup(group); exports.findByGroup = findByGroup; const updateToast = (id, updates) => Toast.updateToast(id, updates); exports.updateToast = updateToast; const reorderToast = (id, newPriority) => Toast.reorderToast(id, newPriority); exports.reorderToast = reorderToast; const pauseQueue = () => Toast.pauseQueue(); exports.pauseQueue = pauseQueue; const resumeQueue = () => Toast.resumeQueue(); exports.resumeQueue = resumeQueue; const getToastPosition = id => Toast.getToastPosition(id); // Toast template shortcuts exports.getToastPosition = getToastPosition; const success = (message, options) => Toast.show({ ...options, message, type: 'success' }); exports.success = success; const error = (message, options) => Toast.show({ ...options, message, type: 'error' }); exports.error = error; const warning = (message, options) => Toast.show({ ...options, message, type: 'warning' }); exports.warning = warning; const info = (message, options) => Toast.show({ ...options, message, type: 'info' }); // Convenience methods with common patterns exports.info = info; const loading = (message = 'Loading...', options) => Toast.show({ ...options, message, duration: 999999, // Long duration for loading dismissOnPress: false, swipeToDismiss: false, icon: options?.icon || '⏳' }); exports.loading = loading; const promise = (promise, messages, options) => { const loadingId = loading(messages.loading || 'Loading...', options); return promise.then(result => { hide(loadingId); const successMsg = typeof messages.success === 'function' ? messages.success(result) : messages.success || 'Success!'; success(successMsg, options); return result; }).catch(err => { hide(loadingId); const errorMsg = typeof messages.error === 'function' ? messages.error(err) : messages.error || 'Something went wrong'; error(errorMsg, options); throw err; }); }; // Progress toast helpers exports.promise = promise; const showProgress = (message, initialProgress = 0, options) => Toast.show({ ...options, message, progress: initialProgress, showProgressBar: true, duration: 999999, // Long duration for progress dismissOnPress: false, swipeToDismiss: false, icon: options?.icon || '⏳' }); exports.showProgress = showProgress; const updateProgress = (id, progress, message) => Toast.update(id, { progress: Math.min(1.0, Math.max(0, progress)), ...(message && { message }) }); // Export components exports.updateProgress = updateProgress; // Only export React Native components if not in test environment if (typeof jest === 'undefined') { try { // Dynamic imports to ensure components are available require('./ToastContainer'); require('./CustomToastView'); require('./QueueMonitor'); require('./useToastQueue'); // These are already exported as ES modules above } catch { // Components not available in this environment } } // Default export var _default = exports.default = { show, hide, hideAll, update, configure, destroy, isActive, getActiveToasts, getQueuedToasts, // Template shortcuts success, error, warning, info, loading, promise, // Progress helpers showProgress, updateProgress, // Advanced queue management getQueueStats, clearGroup, findByGroup, updateToast, reorderToast, pauseQueue, resumeQueue, getToastPosition }; // Export analytics // Export types //# sourceMappingURL=index.js.map