aboutsummaryrefslogtreecommitdiffstats
path: root/components/Edit.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'components/Edit.jsx')
-rw-r--r--components/Edit.jsx60
1 files changed, 9 insertions, 51 deletions
diff --git a/components/Edit.jsx b/components/Edit.jsx
index 3ca7b32..7818637 100644
--- a/components/Edit.jsx
+++ b/components/Edit.jsx
@@ -1,62 +1,20 @@
import { StyleSheet, Text, TextInput , View } from 'react-native';
import { useState, useEffect } from 'react'
+import { handleGetNote, handleCreateNote, handleEditNote } from '../helpers';
import Menu from './Menu'
-const Edit = ({ edit, setEdit, session, setSession, showError }) => {
+const Edit = ({ edit: note, setEdit, session, setSession, showError }) => {
const [saving, setSaving] = useState()
- const [title, setTitle] = useState(edit ? edit.title : '')
+ const [title, setTitle] = useState(note ? note.title : '')
const [content, setContent] = useState()
- const fetchNote = async () => {
- try {
- const response = await fetch(`https://apps.pruss.it/api/notes/${edit.noteId}`, {
- method: 'GET', headers: { 'Cookie': session.cookies },
- })
- const { content } = await response.json()
- setContent(content)
- } catch(e) {
- showError('Error while fetching note')
- setEdit(null)
- }
- }
-
- const saveNote = async () => {
- try {
- setSaving(true)
- await fetch(`https://apps.pruss.it/api/notes/${edit._id}`, {
- method: 'PUT',
- headers: { 'Content-Type': 'plain/text; charset=utf-8', 'Cookie': session.cookies },
- body: JSON.stringify({ title, noteId: edit.noteId, content })
- })
- setSaving(false)
- setEdit(null)
- } catch(e) {
- showError('Error while saving note')
- setSaving(false)
- setEdit(null)
- }
- }
-
- createNote = async () => {
- try {
- setSaving(true)
- await fetch(`https://apps.pruss.it/api/notes`, {
- method: 'POST',
- headers: { 'Content-Type': 'plain/text; charset=utf-8', 'Cookie': session.cookies },
- body: JSON.stringify({ title, content })
- })
- setSaving(false)
- setEdit(null)
- } catch(e) {
- showError('Error while saving note')
- setSaving(false)
- setEdit(null)
- }
- }
+ const saveNote = () => note._id
+ ? handleEditNote({ note, title, content, setSaving, setEdit, session, showError })
+ : handleCreateNote({ title, content, setSaving, setEdit, session, showError })
useEffect(() => {
- if (edit?._id) {
- fetchNote()
+ if (note?._id) {
+ handleGetNote({ note, setContent, setEdit, session, showError })
} else {
setContent('')
}
@@ -69,7 +27,7 @@ const Edit = ({ edit, setEdit, session, setSession, showError }) => {
setSession={setSession}
showError={showError}
setEdit={setEdit}
- saveNote={edit._id ? saveNote : createNote}
+ saveNote={saveNote}
/>
<View style={styles.container}>
<TextInput