Ensure nothing happens if QR code fails to save

This commit is contained in:
Hailey
2024-06-19 08:59:54 -07:00
parent eec332f373
commit 1dbfc6715d
+9 -1
View File
@@ -9,6 +9,7 @@ import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {nanoid} from 'nanoid/non-secure' import {nanoid} from 'nanoid/non-secure'
import {logger} from '#/logger'
import {saveImageToMediaLibrary} from 'lib/media/manip' import {saveImageToMediaLibrary} from 'lib/media/manip'
import {logEvent} from 'lib/statsig/statsig' import {logEvent} from 'lib/statsig/statsig'
import {isNative} from 'platform/detection' import {isNative} from 'platform/detection'
@@ -62,10 +63,17 @@ export function QrCodeDialog({
} }
const filename = `${FS.cacheDirectory}/${nanoid(12)}.png` const filename = `${FS.cacheDirectory}/${nanoid(12)}.png`
await FS.copyAsync({from: uri, to: filename})
// Incase of a FS failure, don't crash the app
try {
await FS.copyAsync({from: uri, to: filename})
await saveImageToMediaLibrary({uri: filename}) await saveImageToMediaLibrary({uri: filename})
await FS.deleteAsync(filename) await FS.deleteAsync(filename)
} catch (e: unknown) {
Toast.show(_(msg`An error occurred while saving the QR code!`))
logger.error('Failed to save QR code', {error: e})
return
}
} else { } else {
if (!AppBskyGraphStarterpack.isRecord(starterPack.record)) { if (!AppBskyGraphStarterpack.isRecord(starterPack.record)) {
return return