-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.tsx
More file actions
69 lines (63 loc) · 1.87 KB
/
App.tsx
File metadata and controls
69 lines (63 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import React, {useCallback} from 'react';
import {createNativeStackNavigator} from '@react-navigation/native-stack';
import {NavigationContainer} from '@react-navigation/native';
import {SafeAreaProvider} from 'react-native-safe-area-context';
import ListScreen from './screens/list';
import UploadScreen from './screens/upload';
import {PS3Provider, S3Client} from 'react-native-presigned-s3';
import {QueryClient, QueryClientProvider} from '@tanstack/react-query';
import {create, get, list, remove} from './utils/files';
import AddButton from './componenets/addButton';
import type {S3Handlers} from 'react-native-presigned-s3';
const Stack = createNativeStackNavigator();
const queryClient = new QueryClient({
defaultOptions: {
queries: {
gcTime: 60000,
},
},
});
const handlers: S3Handlers = {
get,
list,
create,
remove,
};
const s3Client = new S3Client(handlers, {
autoRemove: false,
appGroup: 'com.example.ps3.test',
directory: 'ps3_test',
immediateDownload: false,
persistKey: '@example_ps3_storage_key',
retries: 0,
shouldPersist: false,
});
function App() {
const listRightButton = useCallback(() => {
return <AddButton />;
}, []);
return (
<PS3Provider s3client={s3Client}>
<QueryClientProvider client={queryClient}>
<SafeAreaProvider>
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="List"
component={ListScreen}
initialParams={{
path: 'home/',
}}
options={{
headerRight: listRightButton,
}}
/>
<Stack.Screen name="Upload" component={UploadScreen} />
</Stack.Navigator>
</NavigationContainer>
</SafeAreaProvider>
</QueryClientProvider>
</PS3Provider>
);
}
export default App;