sonner-native
Version:
An opinionated toast component for React Native. A port of @emilkowalski's sonner.
80 lines (69 loc) • 1.48 kB
text/typescript
import { getToastContext } from './toaster';
import { type toast as toastType } from './types';
export const toast: typeof toastType = (title, options) => {
return getToastContext().addToast({
title,
variant: 'info',
...options,
});
};
toast.success = (title, options = {}) => {
return getToastContext().addToast({
...options,
title,
variant: 'success',
});
};
toast.wiggle = (id) => {
return getToastContext().wiggleToast(id);
};
toast.error = (title: string, options = {}) => {
return getToastContext().addToast({
...options,
title,
variant: 'error',
});
};
toast.warning = (title: string, options = {}) => {
return getToastContext().addToast({
...options,
title,
variant: 'warning',
});
};
toast.info = (title: string, options = {}) => {
return getToastContext().addToast({
title,
...options,
variant: 'info',
});
};
toast.promise = (promise, options) => {
return getToastContext().addToast({
...options,
title: options.loading,
variant: 'info',
promiseOptions: {
...options,
promise,
},
});
};
toast.custom = (jsx, options) => {
return getToastContext().addToast({
title: '',
variant: 'info',
jsx,
...options,
});
};
toast.loading = (title, options = {}) => {
return getToastContext().addToast({
title,
variant: 'loading',
...options,
});
};
toast.dismiss = (id) => {
return getToastContext().dismissToast(id);
};