()
| 107 | }; |
| 108 | |
| 109 | export const showImagePickerAndReadImage = async (): Promise<string | undefined> => { |
| 110 | try { |
| 111 | const response: ImagePickerResponse = await launchImageLibrary({ |
| 112 | mediaType: 'photo', |
| 113 | maxHeight: 800, |
| 114 | maxWidth: 600, |
| 115 | selectionLimit: 1, |
| 116 | includeBase64: true, |
| 117 | }); |
| 118 | |
| 119 | if (response.didCancel) { |
| 120 | return undefined; |
| 121 | } else if (response.errorCode) { |
| 122 | throw new Error(response.errorMessage); |
| 123 | } else if (response.assets) { |
| 124 | const base64 = response.assets[0].base64; |
| 125 | if (base64) { |
| 126 | const result = await detectQRCodeInImage(base64); |
| 127 | if (result) return result; |
| 128 | } |
| 129 | throw new Error(loc.send.qr_error_no_qrcode); |
| 130 | } |
| 131 | |
| 132 | return undefined; |
| 133 | } catch (error: any) { |
| 134 | console.error(error); |
| 135 | throw error; |
| 136 | } |
| 137 | }; |
| 138 | |
| 139 | export const showFilePickerAndReadFile = async function (): Promise<{ data: string | false; uri: string | false }> { |
| 140 | try { |
no test coverage detected