aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/components/hooks/useFetchPaste.js
diff options
context:
space:
mode:
authorJacky Zhao <[email protected]>2021-04-11 15:06:48 -0700
committerGitHub <[email protected]>2021-04-11 15:06:48 -0700
commit82bda5ee85efbd2eae25427a839529d5e230eeaa (patch)
tree1f7a88938fd6664a9a048503a5a78d010e3db1e2 /frontend/src/components/hooks/useFetchPaste.js
parentMerge pull request #72 from jackyzha0/no-ip (diff)
parentreadd preset height (diff)
downloadctrl-v-82bda5ee85efbd2eae25427a839529d5e230eeaa.tar.xz
ctrl-v-82bda5ee85efbd2eae25427a839529d5e230eeaa.zip
Merge pull request #74 from jackyzha0/next-refactor
Diffstat (limited to 'frontend/src/components/hooks/useFetchPaste.js')
-rw-r--r--frontend/src/components/hooks/useFetchPaste.js67
1 files changed, 0 insertions, 67 deletions
diff --git a/frontend/src/components/hooks/useFetchPaste.js b/frontend/src/components/hooks/useFetchPaste.js
deleted file mode 100644
index c394f5b..0000000
--- a/frontend/src/components/hooks/useFetchPaste.js
+++ /dev/null
@@ -1,67 +0,0 @@
-import {useEffect, useState} from 'react'
-import {fetchPaste, fmtDateStr} from './shared'
-import {LANGS} from "../renderers/Code";
-
-export default (id) => {
- const [loading, setLoading] = useState(true)
- const [err, setErr] = useState()
- const [requiresAuth, setRequiresAuth] = useState(false)
- const [validPass, setValidPass] = useState(false)
- const [result, setResult] = useState({
- title: 'fetching paste...',
- content: '',
- language: LANGS.detect,
- expiry: '',
- })
-
- const handleErr = error => {
- const resp = error.response
-
- // network err
- if (!resp) {
- setErr(error.toString())
- return
- }
-
- // password protected
- if (resp.status === 401) {
- setRequiresAuth(true)
- return
- }
-
- // catch all
- const errTxt = `${resp.status}: ${resp.data}`
- setErr(errTxt)
- }
-
- // callback to try verifying with password
- const getWithPassword = (password, errorCallback) => {
- fetchPaste(id, password)
- .then(resp => {
- setValidPass(true)
- setStateFromData(resp.data)
- })
- .catch(e => errorCallback(e.response.data))
- }
-
-
- const setStateFromData = (data) => {
- document.title = data.title
- setResult({
- title: data.title,
- content: data.content,
- language: data.language,
- expiry: fmtDateStr(data.expiry)
- })
- }
-
- // initial fetch
- useEffect(() => {
- fetchPaste(id)
- .then(resp => setStateFromData(resp.data))
- .catch(handleErr)
- .finally(() => setLoading(false))
- }, [id])
-
- return { loading, err, requiresAuth, validPass, getWithPassword, result }
-} \ No newline at end of file