import fetchJson from 'helpers/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) => { const 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': 'plain/text; charset=utf-8' }, 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([]) }