const DialogBox = require("react-native-dialogbox").default; const { Keyboard } = require("react-native"); // Add this at the bottom of the component: // // { this.dialogbox = dialogbox }}/> let 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, reject) => { 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, reject) => { Keyboard.dismiss(); let 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.DialogBox = DialogBox; module.exports = { dialogs };