mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-24 10:27:10 +02:00
1dc4516efc
This reverts commit f432734338
.
This new package has its own glitches and doesn't look good
when button labels are too large. So reverting to the less
glitchy package.
77 lines
1.8 KiB
JavaScript
77 lines
1.8 KiB
JavaScript
const DialogBox = require('react-native-dialogbox').default;
|
|
const { Keyboard } = require('react-native');
|
|
|
|
// Add this at the bottom of the component:
|
|
//
|
|
// <DialogBox ref={dialogbox => { this.dialogbox = dialogbox }}/>
|
|
|
|
const dialogs = {};
|
|
|
|
dialogs.confirm = (parentComponent, message) => {
|
|
if (!parentComponent) throw new Error('parentComponent is required');
|
|
if (!('dialogbox' in parentComponent)) throw new Error('A "dialogbox" component must be defined on the parent component!');
|
|
|
|
return new Promise((resolve) => {
|
|
Keyboard.dismiss();
|
|
|
|
parentComponent.dialogbox.confirm({
|
|
content: message,
|
|
|
|
ok: {
|
|
callback: () => {
|
|
resolve(true);
|
|
},
|
|
},
|
|
|
|
cancel: {
|
|
callback: () => {
|
|
resolve(false);
|
|
},
|
|
},
|
|
});
|
|
});
|
|
};
|
|
|
|
dialogs.pop = (parentComponent, message, buttons, options = null) => {
|
|
if (!parentComponent) throw new Error('parentComponent is required');
|
|
if (!('dialogbox' in parentComponent)) throw new Error('A "dialogbox" component must be defined on the parent component!');
|
|
|
|
if (!options) options = {};
|
|
if (!('buttonFlow' in options)) options.buttonFlow = 'auto';
|
|
|
|
return new Promise((resolve) => {
|
|
Keyboard.dismiss();
|
|
|
|
const btns = [];
|
|
for (let i = 0; i < buttons.length; i++) {
|
|
btns.push({
|
|
text: buttons[i].text,
|
|
callback: () => {
|
|
parentComponent.dialogbox.close();
|
|
resolve(buttons[i].id);
|
|
},
|
|
});
|
|
}
|
|
|
|
parentComponent.dialogbox.pop({
|
|
content: message,
|
|
btns: btns,
|
|
buttonFlow: options.buttonFlow,
|
|
});
|
|
});
|
|
};
|
|
|
|
dialogs.error = (parentComponent, message) => {
|
|
Keyboard.dismiss();
|
|
return parentComponent.dialogbox.alert(message);
|
|
};
|
|
|
|
dialogs.info = (parentComponent, message) => {
|
|
Keyboard.dismiss();
|
|
return parentComponent.dialogbox.alert(message);
|
|
};
|
|
|
|
dialogs.DialogBox = DialogBox;
|
|
|
|
module.exports = { dialogs };
|