Files
com.blitzwallet/app/functions/writeFileToFilesystem.js
T
Blake KaufmanandGitHub 519bd3c8e2 Update react native (#163)
* updating react-native

* swapping to new arch enabled image library

* fixing store styling + padding issues

* using legacy file system api for compatibility

* fixed dimensions

* fixing back handler on homepage

* fixed non awaited promise

* standardized seed language

* updating firebase dependency versions

* removing uneeded maven
2025-10-04 10:46:57 -04:00

82 lines
2.2 KiB
JavaScript

import {Platform, Share} from 'react-native';
import {crashlyticsLogReport} from './crashlyticsLogs';
import {
documentDirectory,
EncodingType,
StorageAccessFramework,
writeAsStringAsync,
} from 'expo-file-system/legacy';
export default async function writeAndShareFileToFilesystem(
fileData,
fileName,
fileType,
) {
console.log('Running in new filesystem write and share...');
try {
crashlyticsLogReport('Starting write to filesystem process');
const fileUri = `${documentDirectory}${fileName}`;
await writeAsStringAsync(fileUri, fileData, {
encoding: EncodingType.UTF8,
});
if (Platform.OS === 'ios') {
await Share.share({
title: `${fileName}`,
url: `${fileUri}`,
type: fileType,
});
return {success: true, error: null};
} else {
try {
const permissions =
await StorageAccessFramework.requestDirectoryPermissionsAsync();
if (permissions.granted) {
const data = await StorageAccessFramework.readAsStringAsync(fileUri);
try {
const uri = await StorageAccessFramework.createFileAsync(
permissions.directoryUri,
fileName,
fileType,
);
await writeAsStringAsync(uri, data);
return {success: true, error: null};
} catch (err) {
console.log('writting file to filesystem for android err', err);
return {
success: false,
error: 'errormessages.savingFileError',
originalError: err,
};
}
} else {
await Share.share({
title: `${fileName}`,
url: `${fileUri}`,
type: fileType,
});
return {success: true, error: null};
}
} catch (err) {
console.log('android permission error', err);
return {
success: false,
error: 'errormessages.savingFilePermissionsError',
originalError: err,
};
}
}
} catch (e) {
console.log('saving to filesystem error', e);
return {
success: false,
error: 'errormessages.writtingFileError',
originalError: e,
};
}
}