You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-08-10 22:11:50 +02:00
Mobile: Fix error when attempting to show message boxes in some cases (#12142)
This commit is contained in:
@@ -885,6 +885,7 @@ packages/app-mobile/utils/injectedJs.js
|
||||
packages/app-mobile/utils/ipc/RNToWebViewMessenger.js
|
||||
packages/app-mobile/utils/ipc/WebViewToRNMessenger.js
|
||||
packages/app-mobile/utils/lockToSingleInstance.js
|
||||
packages/app-mobile/utils/makeShowMessageBox.test.js
|
||||
packages/app-mobile/utils/makeShowMessageBox.js
|
||||
packages/app-mobile/utils/pickDocument.js
|
||||
packages/app-mobile/utils/polyfills/bufferPolyfill.js
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -859,6 +859,7 @@ packages/app-mobile/utils/injectedJs.js
|
||||
packages/app-mobile/utils/ipc/RNToWebViewMessenger.js
|
||||
packages/app-mobile/utils/ipc/WebViewToRNMessenger.js
|
||||
packages/app-mobile/utils/lockToSingleInstance.js
|
||||
packages/app-mobile/utils/makeShowMessageBox.test.js
|
||||
packages/app-mobile/utils/makeShowMessageBox.js
|
||||
packages/app-mobile/utils/pickDocument.js
|
||||
packages/app-mobile/utils/polyfills/bufferPolyfill.js
|
||||
|
27
packages/app-mobile/utils/makeShowMessageBox.test.ts
Normal file
27
packages/app-mobile/utils/makeShowMessageBox.test.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { DialogControl } from '../components/DialogManager';
|
||||
import { PromptButtonSpec } from '../components/DialogManager/types';
|
||||
import makeShowMessageBox from './makeShowMessageBox';
|
||||
|
||||
type OnPrompt = (buttons: PromptButtonSpec[])=> void;
|
||||
const makeMockDialogControl = (onPrompt: OnPrompt): DialogControl => {
|
||||
return {
|
||||
info: jest.fn(),
|
||||
error: jest.fn(),
|
||||
prompt: jest.fn((_title, _message, buttons) => {
|
||||
onPrompt(buttons);
|
||||
}),
|
||||
showMenu: jest.fn(),
|
||||
};
|
||||
};
|
||||
|
||||
describe('makeShowMessageBox', () => {
|
||||
test('should resolve with the index of the selected button', async () => {
|
||||
const dialogControl = makeMockDialogControl(buttons => {
|
||||
buttons.find(button => button.text === 'OK').onPress();
|
||||
});
|
||||
const showMessageBox = makeShowMessageBox({ current: dialogControl });
|
||||
|
||||
const okButtonIndex = 0;
|
||||
expect(await showMessageBox('test')).toBe(okButtonIndex);
|
||||
});
|
||||
});
|
@@ -6,7 +6,7 @@ import { MessageBoxType, ShowMessageBoxOptions } from '@joplin/lib/shim';
|
||||
import { PromptButtonSpec } from '../components/DialogManager/types';
|
||||
|
||||
|
||||
const makeShowMessageBox = (dialogControl: null|RefObject<DialogControl>) => (message: string, options: ShowMessageBoxOptions = null) => {
|
||||
const makeShowMessageBox = (dialogControl: null|RefObject<DialogControl>) => (message: string, options: ShowMessageBoxOptions = {}) => {
|
||||
return new Promise<number>(resolve => {
|
||||
const okButton: PromptButtonSpec = {
|
||||
text: _('OK'),
|
||||
|
Reference in New Issue
Block a user