2023-08-12 03:22:50 +00:00
|
|
|
import { PermissionsAndroid, Platform } from "react-native";
|
|
|
|
import { Dirs, FileSystem } from "react-native-file-access";
|
|
|
|
import { toast } from "./toast";
|
2022-08-25 07:59:52 +00:00
|
|
|
|
|
|
|
export const write = async (name: string, data: string) => {
|
2023-08-12 03:22:50 +00:00
|
|
|
const filePath = `${Dirs.DocumentDir}/${name}`;
|
2022-08-25 07:59:52 +00:00
|
|
|
const permission = async () => {
|
2023-08-12 03:22:50 +00:00
|
|
|
if (Platform.OS !== "android") return true;
|
2022-08-25 07:59:52 +00:00
|
|
|
const granted = await PermissionsAndroid.request(
|
2023-08-12 03:22:50 +00:00
|
|
|
PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE
|
|
|
|
);
|
|
|
|
return granted === PermissionsAndroid.RESULTS.GRANTED;
|
|
|
|
};
|
|
|
|
const granted = await permission();
|
|
|
|
if (!granted) return;
|
|
|
|
await FileSystem.writeFile(filePath, data);
|
|
|
|
if (Platform.OS === "android") {
|
|
|
|
await FileSystem.cpExternal(filePath, name, "downloads");
|
2022-10-31 04:22:08 +00:00
|
|
|
}
|
2023-08-12 03:22:50 +00:00
|
|
|
toast(`Downloaded ${name}`);
|
|
|
|
};
|