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 && 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([]) }