diff options
author | 2021-08-16 21:22:32 +0200 | |
---|---|---|
committer | 2021-08-16 21:24:42 +0200 | |
commit | eb28244fc8f98e28728c7b3f951e102b9cc56590 (patch) | |
tree | 76237e414671730371f87c8e263a18c2d2e8c17f /apps/Notes/helpers | |
parent | b43d34c0136552cd2d83258fb5523bb873177908 (diff) | |
download | my_apps-eb28244fc8f98e28728c7b3f951e102b9cc56590.tar.gz my_apps-eb28244fc8f98e28728c7b3f951e102b9cc56590.tar.bz2 my_apps-eb28244fc8f98e28728c7b3f951e102b9cc56590.zip |
styles moved to scss
Diffstat (limited to 'apps/Notes/helpers')
-rw-r--r-- | apps/Notes/helpers/import.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/apps/Notes/helpers/import.js b/apps/Notes/helpers/import.js new file mode 100644 index 0000000..b05a458 --- /dev/null +++ b/apps/Notes/helpers/import.js @@ -0,0 +1,41 @@ +import fetchJson from 'lib/fetchJson' +import {faCheck, faTimes} from '@fortawesome/free-solid-svg-icons' +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome' + +export const state = s => s && <span><FontAwesomeIcon icon={s === 1 ? faCheck : faTimes} /></span> +export const color = s => s && {color: s === 1 ? 'green' : 'brown'} + +const readFileAsText = (file) => new Promise((resolve,reject) => { + let fr = new FileReader() + + fr.onload = () => resolve(fr.result) + fr.onerror = () => reject(fr) + + fr.readAsText(file) +}) + +export const handleImport = async (e, files, mutateNotes, setDone) => { + e.preventDefault(); + + Array.from(files).forEach(async (file, i) => { + const title = file.name.replace(/\.[^/.]+$/, "") + const content = await readFileAsText(file); + + try { + const notes = await fetchJson('/api/notes', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({title, content}), + }) + if (i === files.length - 1) await mutateNotes(notes) + setDone((prev) => ({...prev, [i]: 1})) + } catch (e) { + setDone((prev) => ({...prev, [i]: 0})) + } + }) +} + +export const handleChange = (e, setFiles, setDone) => { + setFiles(e.currentTarget.files) + setDone([]) +} |