oneframe-react
Version:
Oneframe React ## Components, Hooks, Helper Functions & State Management
121 lines (120 loc) • 4.79 kB
JavaScript
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const iziToast = __importStar(require("izitoast/dist/js/iziToast"));
const lodash_1 = require("lodash");
const prop_types_1 = __importDefault(require("prop-types"));
const toastMessage = (messageOptions) => {
const messageDefault = {
theme: 'light',
icon: null,
title: '',
confirmMessage: {
buttonYes: 'Confirm',
buttonNo: 'Cancel',
message: 'Are you sure to continue?',
},
message: messageOptions.confirmMessage ? messageOptions.confirmMessage.message : '',
position: 'topRight',
progressBar: false,
progressColor: 'rgb(229, 61, 65)',
close: true,
timeout: 5000,
overlay: false,
overlayClose: true,
displayMode: 1,
target: null,
zindex: 99999,
maxWidth: 600,
messageType: 'show',
};
const buttonYes = messageOptions.confirmMessage ? messageOptions.confirmMessage.buttonYes : 'Yes';
const buttonNo = messageOptions.confirmMessage ? messageOptions.confirmMessage.buttonNo : 'No';
return new Promise(resolve => {
let iziMessage = Object.assign(Object.assign(Object.assign({}, lodash_1.omit(messageDefault, 'confirmMessage')), lodash_1.omit(messageOptions, 'confirmMessage')), { buttons: [
[
`<button style="outline: none">${buttonYes}</button>`,
function (instance, toast) {
instance.hide({
transitionOut: 'fadeOutUp',
onClosing: function () {
resolve({ confirm: true });
},
}, toast, 'buttonName');
},
true,
],
[
`<button>${buttonNo}</button>`,
function (instance, toast) {
instance.hide({
transitionOut: 'fadeOutUp',
onClosing: function () {
resolve({ confirm: false });
},
}, toast, 'buttonName');
},
],
] });
if (!messageOptions.confirmMessage && lodash_1.isEmpty(messageOptions.confirmMessage)) {
iziMessage = lodash_1.omit(iziMessage, 'buttons');
}
else {
iziMessage = Object.assign(Object.assign({}, iziMessage), { message: messageOptions.confirmMessage ? messageOptions.confirmMessage.message : '' });
}
switch (iziMessage.messageType) {
case 'show':
iziToast.show(iziMessage);
break;
case 'info':
iziToast.info(iziMessage);
break;
case 'success':
iziToast.success(iziMessage);
break;
case 'warning':
iziToast.warning(iziMessage);
break;
case 'error':
iziToast.error(iziMessage);
break;
default:
iziToast.success(iziMessage);
}
});
};
toastMessage.propTypes = {
message: prop_types_1.default.string.isRequired,
theme: prop_types_1.default.string,
title: prop_types_1.default.string,
icon: prop_types_1.default.node,
confirmMessage: prop_types_1.default.shape({
buttonYes: prop_types_1.default.string,
buttonNo: prop_types_1.default.string,
message: prop_types_1.default.string,
theme: prop_types_1.default.oneOf(['show', 'info', 'success', 'error', 'warning']),
}),
position: prop_types_1.default.string,
progressBar: prop_types_1.default.bool,
progressColor: prop_types_1.default.string,
close: prop_types_1.default.bool,
timeout: prop_types_1.default.number,
overlay: prop_types_1.default.bool,
overlayClose: prop_types_1.default.bool,
displayMode: prop_types_1.default.number,
target: prop_types_1.default.string,
zindex: prop_types_1.default.number,
maxWidth: prop_types_1.default.number,
messageType: prop_types_1.default.string,
color: prop_types_1.default.string,
};
exports.default = toastMessage;
;