1
0
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:
Henry Heino
2025-04-23 01:02:31 -07:00
committed by GitHub
parent 987c273376
commit 7c6c9b3e61
4 changed files with 30 additions and 1 deletions

View File

@@ -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
View File

@@ -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

View 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);
});
});

View File

@@ -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'),