-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathApp.tsx
81 lines (76 loc) · 2.41 KB
/
App.tsx
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
70
71
72
73
74
75
76
77
78
79
80
81
import React, { useCallback, useState, useMemo } from 'react';
import './App.css';
import 'devextreme/dist/css/dx.material.blue.light.compact.css';
import FileManager, { Permissions, Upload } from 'devextreme-react/file-manager';
import { getAmazonFileSystemProvider } from './api/amazon.custom.provider';
const allowedFileExtensions: string[] = [];
export default function App(): JSX.Element {
const [requests, setRequests] = useState<
{ method: string; urlPath: string; queryString: string }[]
>([]);
const onRequestExecuted = useCallback(
({
method,
urlPath,
queryString,
}: {
method: string;
urlPath: string;
queryString: string;
}): void => {
const request = { method, urlPath, queryString };
setRequests((requests) => [request, ...requests]);
},
[],
);
const fileSystemProvider = useMemo(() => getAmazonFileSystemProvider(
'https://localhost:52366/api/AmazonS3',
onRequestExecuted,
), []);
return (
<div className="main">
<FileManager
id="file-manager"
fileSystemProvider={fileSystemProvider}
allowedFileExtensions={allowedFileExtensions}
>
<Upload chunkSize={5242880}></Upload>
<Permissions download={true}></Permissions>
<Permissions
create={true}
copy={true}
move={true}
delete={true}
rename={true}
upload={true}
download={true}>
</Permissions>
</FileManager>
<div id="request-panel">
{requests.map((r, i) => (
<div key={i} className="request-info">
<div className="parameter-info">
<div className="parameter-name">Method:</div>
<div className="parameter-value dx-theme-accent-as-text-color">
{r.method}
</div>
</div>
<div className="parameter-info">
<div className="parameter-name">Url path:</div>
<div className="parameter-value dx-theme-accent-as-text-color">
{r.urlPath}
</div>
</div>
<div className="parameter-info">
<div className="parameter-name">Query string:</div>
<div className="parameter-value dx-theme-accent-as-text-color">
{r.queryString}
</div>
</div>
<br />
</div>
))}
</div>
</div>
);
}