2021-02-18 16:37:43 +03:00
|
|
|
/**
|
|
|
|
* Helper function that navigates to ScanQR screen, and returns promise that will resolve with the result of a scan,
|
|
|
|
* and then navigates back. If QRCode scan was closed, promise resolves to null.
|
|
|
|
*
|
|
|
|
* @param navigateFunc {function}
|
|
|
|
* @param currentScreenName {string}
|
2021-03-20 13:00:01 +00:00
|
|
|
* @param showFileImportButton {boolean}
|
2021-02-18 16:37:43 +03:00
|
|
|
*
|
|
|
|
* @return {Promise<string>}
|
|
|
|
*/
|
2022-09-05 19:34:02 +01:00
|
|
|
module.exports = function scanQrHelper(
|
|
|
|
navigateFunc: (scr: string, params?: any) => void,
|
|
|
|
currentScreenName: string,
|
|
|
|
showFileImportButton = true,
|
|
|
|
): Promise<string | null> {
|
2021-02-18 16:37:43 +03:00
|
|
|
return new Promise(resolve => {
|
2022-09-05 19:34:02 +01:00
|
|
|
const params = {
|
|
|
|
showFileImportButton: Boolean(showFileImportButton),
|
|
|
|
onBarScanned: (data: any) => {},
|
|
|
|
onDismiss: () => {},
|
|
|
|
};
|
2021-02-18 16:37:43 +03:00
|
|
|
|
2022-09-05 19:34:02 +01:00
|
|
|
params.onBarScanned = function (data: any) {
|
2021-02-18 16:37:43 +03:00
|
|
|
setTimeout(() => resolve(data.data || data), 1);
|
|
|
|
navigateFunc(currentScreenName);
|
|
|
|
};
|
|
|
|
|
|
|
|
params.onDismiss = function () {
|
|
|
|
setTimeout(() => resolve(null), 1);
|
|
|
|
};
|
|
|
|
|
|
|
|
navigateFunc('ScanQRCodeRoot', {
|
|
|
|
screen: 'ScanQRCode',
|
|
|
|
params,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
};
|
2022-09-05 19:34:02 +01:00
|
|
|
|
|
|
|
export {};
|