nuke-modal
Version:
模态框
52 lines (49 loc) • 1.21 kB
JavaScript
/** @jsx createElement */
import { isWeex } from 'nuke-env';
export default function Prompt(message, callbackOrButtons) {
let okTitle;
let okCallback;
let cancelCallback;
let cancelTitle;
if (typeof callbackOrButtons === 'function') {
okCallback = callbackOrButtons;
} else if (callbackOrButtons && callbackOrButtons[0]) {
callbackOrButtons.forEach((btn, index) => {
const callback = btn.onPress;
const text = btn.text;
if (index === 0) {
okTitle = text;
okCallback = callback;
} else {
cancelTitle = text;
cancelCallback = callback;
}
});
}
if (isWeex) {
okTitle = okTitle || 'OK';
cancelTitle = cancelTitle || 'Cancel';
const modal = require('@weex-module/modal');
modal.prompt(
{
message,
okTitle,
cancelTitle,
},
(ret) => {
if (ret.result === okTitle) {
okCallback && okCallback(ret);
} else {
cancelCallback && cancelCallback();
}
}
);
} else {
const ret = prompt(message);
if (ret) {
okCallback && okCallback(ret);
} else {
cancelCallback && cancelCallback();
}
}
}