1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-03 08:35:29 +02:00
joplin/ReactNativeClient/lib/dialogs.js

66 lines
1.4 KiB
JavaScript
Raw Normal View History

2017-07-13 01:01:15 +02:00
import DialogBox from 'react-native-dialogbox';
2017-07-15 18:25:33 +02:00
import { Keyboard } from 'react-native';
2017-07-13 01:01:15 +02:00
// Add this at the bottom of the component:
//
// <DialogBox ref={dialogbox => { this.dialogbox = dialogbox }}/>
let dialogs = {};
dialogs.confirm = (parentComponent, message) => {
if (!'dialogbox' in parentComponent) throw new Error('A "dialogbox" component must be defined on the parent component!');
return new Promise((resolve, reject) => {
2017-07-15 18:25:33 +02:00
Keyboard.dismiss();
2017-07-13 01:01:15 +02:00
parentComponent.dialogbox.confirm({
content: message,
ok: {
callback: () => {
resolve(true);
}
},
cancel: {
callback: () => {
resolve(false);
}
},
});
2017-07-15 18:25:33 +02:00
});
};
dialogs.pop = (parentComponent, message, buttons) => {
if (!'dialogbox' in parentComponent) throw new Error('A "dialogbox" component must be defined on the parent component!');
return new Promise((resolve, reject) => {
Keyboard.dismiss();
let btns = [];
for (let i = 0; i < buttons.length; i++) {
btns.push({
text: buttons[i].title,
callback: () => {
parentComponent.dialogbox.close();
resolve(buttons[i].id);
},
});
}
parentComponent.dialogbox.pop({
content: message,
btns: btns,
});
});
}
2017-07-15 18:25:33 +02:00
dialogs.error = (parentComponent, message) => {
Keyboard.dismiss();
return parentComponent.dialogbox.alert(message);
2017-07-13 01:01:15 +02:00
}
2017-07-15 18:25:33 +02:00
dialogs.DialogBox = DialogBox
2017-07-13 01:01:15 +02:00
export { dialogs };