import { StyleSheet, Text, View, Modal, Alert} from 'react-native'; import Button from '../components/Button'; import { useState, useEffect } from 'react'; import DropDownPicker from 'react-native-dropdown-picker'; import db from '../lib/client'; import { Platform } from 'react-native'; import * as MediaLibrary from 'expo-media-library'; import * as FileSystem from 'expo-file-system'; const { StorageAccessFramework } = FileSystem; export default function Settings({theme, changeTheme, themeMode, clearAll, resyncData}:any){ const [open, setOpen] = useState(false); const [value, setValue] = useState(themeMode); const [items, setItems] = useState([ {label: 'System', value: 'auto'}, {label: 'Light', value: 'light'}, {label: 'Dark', value: 'dark'}, {label: 'Solorized Dark', value: 'solorizedDark'}, {label: "OLED", value: 'oled'} ]); const [deleteAllModal, setDeleteAllModal] = useState(false); const st = style(theme); const handleExport = async () => { const dataToExport = await db.fileExport() const data = JSON.stringify(dataToExport); if (Platform.OS === 'android') { const permissions = await StorageAccessFramework.requestDirectoryPermissionsAsync(); if (permissions.granted) { const uri = permissions.directoryUri; await StorageAccessFramework.createFileAsync(uri, 'tali', 'application/json').then(async (fileUri) => { await StorageAccessFramework.writeAsStringAsync(fileUri, data, { encoding: FileSystem.EncodingType.UTF8 }).catch((err) => console.log(err)) }) } } }; const handleImport = async () => { StorageAccessFramework.requestDirectoryPermissionsAsync().then(async (permissions) => { if (permissions.granted) { const uri = permissions.directoryUri; const fileUri = await StorageAccessFramework.readDirectoryAsync(uri).then((res) => { for (let i = 0; i < res.length; i++) { if (res[i].endsWith('tali.json')) { return res[i]; } } }) if (fileUri) { const data = await StorageAccessFramework.readAsStringAsync(fileUri).then((res) => res); const dataToImport = JSON.parse(data); const res = await db.fileImport(dataToImport); if (res) { resyncData(); } else { Alert.alert('Error importing data', 'File seems to be corrupted'); clearAll(); } } } }) } useEffect(() => {changeTheme(value)}, [value]); return ( Are you sure you want to delete all data?