summaryrefslogtreecommitdiff
path: root/pages/filesystemtest.tsx
diff options
context:
space:
mode:
authorThomas F. K. Jorna <[email protected]>2021-10-05 12:35:40 +0200
committerThomas F. K. Jorna <[email protected]>2021-10-05 12:35:40 +0200
commit33839479e269bed905f9eefc374060b9d3ee7e19 (patch)
treef628200a10e5e37aa00f05cea2464eaf67df9581 /pages/filesystemtest.tsx
parentb0ddf286f087b31dc75626f709cfce3889de25dd (diff)
feat(preview): filesystem basics in place
Diffstat (limited to 'pages/filesystemtest.tsx')
-rw-r--r--pages/filesystemtest.tsx52
1 files changed, 52 insertions, 0 deletions
diff --git a/pages/filesystemtest.tsx b/pages/filesystemtest.tsx
new file mode 100644
index 0000000..4cadf0e
--- /dev/null
+++ b/pages/filesystemtest.tsx
@@ -0,0 +1,52 @@
+import React, { useEffect, useState } from 'react'
+import { Button } from '@chakra-ui/react'
+
+async function verifyPermission(fileHandle: any, readWrite: any) {
+ const options: any = {}
+ if (readWrite) {
+ options.mode = 'readwrite'
+ }
+ // Check if permission was already granted. If so, return true.
+ if ((await fileHandle.queryPermission(options)) === 'granted') {
+ return true
+ }
+ // Request permission. If the user grants permission, return true.
+ if ((await fileHandle.requestPermission(options)) === 'granted') {
+ return true
+ }
+ // The user didn't grant permission, so return false.
+ return false
+}
+
+export default function Testpage() {
+ const [text, setText] = useState(0)
+ const [dirHandle, setDirhandle] = useState<any>()
+ const [perm, setPerm] = useState(false)
+
+ const pick = async () => {
+ const dirHandle = await window.showDirectoryPicker()
+ console.log(dirHandle)
+ setDirhandle(dirHandle)
+ }
+
+ useEffect(() => {
+ ;(async () => {
+ console.log(dirHandle)
+ const newFileHandle = dirHandle ? await dirHandle.getFileHandle('inbox.org') : null
+ const file = await newFileHandle.getFile()
+ const ttext = await file.text()
+ setText(ttext)
+ const path = newFileHandle ? await dirHandle.resolve(newFileHandle) : null
+ console.log(path)
+ })()
+ }, [dirHandle])
+
+ return (
+ <div>
+ <Button onClick={() => pick()}> Press </Button>
+ <p>{text}</p>
+ <Button onClick={() => setPerm(verifyPermission(dirHandle, true))}>Check permission</Button>
+ <p>{perm ? '👍' : '👎'}</p>
+ </div>
+ )
+}