mirror of
https://github.com/laurent22/joplin.git
synced 2025-03-06 15:36:49 +02:00
This reverts commit f4327343388d09872fb67caed61cd55afaa8e4e0. 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 };
|