@uiw/react-native
Version:
UIW for React Native
34 lines • 1.03 kB
JavaScript
import React from 'react';
import ToastContainer from './ToastContainer';
import RootSiblings from 'react-native-root-siblings';
const elements = [];
function notice(content, type, duration = 2, icon) {
const addSibling = () => {
let sibling = new RootSiblings(<ToastContainer style={{
top: 100 + elements.length * 30
}} icon={icon} content={content} type={type} duration={duration} />);
elements.push(sibling);
};
const destroySibling = () => {
let lastSibling = elements.pop();
lastSibling && lastSibling.destroy();
};
addSibling();
setTimeout(() => {
destroySibling();
}, duration * 1000);
}
export default {
info(content, duration, icon) {
return notice(content, 'info', duration, icon);
},
success(content, duration, icon) {
return notice(content, 'success', duration, icon);
},
warning(content, duration, icon) {
return notice(content, 'warning', duration, icon);
},
error(content, duration, icon) {
return notice(content, 'error', duration, icon);
}
};