diff --git a/src/App.js b/src/App.js
index 759cf4b..67c6d34 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,199 +1,62 @@
import "./App.css";
import React, {useState} from "react";
+import Header from './components/Header'
+import TaskList from "./components/TaskList";
+import AddTask from "./components/AddTask";
function App() {
- document.title = 'Noti.io'
+ document.title = 'Noti.io'
const [tasks, setTasks] = useState([{
- text: 'Test Task',
- id: 616
- }])
+ text: 'Test Task',
+ id: 616
+ }])
const [text, setText] = useState('')
- const [messageInvalidText, setMessageInvalidText] = useState('')
const [counterInputs, setCounterInputs] = useState(1)
+
+ const [messageInvalidText, setMessageInvalidText] = useState('')
+
+
const [formEditInput, setFormEditInput] = useState('')
- const persistTasks = (modificatedTasks) => {
- localStorage.setItem('tasks', JSON.stringify(modificatedTasks))
- }
-
- const persistCounter = () => {
- localStorage.setItem('counter', JSON.stringify(counterInputs))
- }
-
- const restoreTasks = () => {
- let tasksCache = localStorage.getItem('tasks')
-
- tasksCache = JSON.parse(tasksCache)
-
- setTasks(tasksCache)
-
- }
-
- const restoreCounter = () => {
- let counterInputCache = localStorage.getItem('counter')
-
- counterInputCache = JSON.parse(counterInputCache)
-
- setCounterInputs(counterInputCache + 1)
- }
-
- const checkCache = () => {
- if (localStorage.getItem('tasks')) {
- restoreTasks()
- }
-
- if (localStorage.getItem('counter')) {
- restoreCounter()
- }
- return
- }
-
- window.onload = () => {
- checkCache()
- }
-
-
- const validateInput = (e, id = 0 ) => {
- e.preventDefault()
-
- setMessageInvalidText('')
-
- if (!text.trim()) {
- setMessageInvalidText('Text empty, please send a new task')
- return
- }
-
- setTasks([...tasks,
- {
- text: text,
- id: counterInputs
- }
- ])
-
- setCounterInputs(counterInputs + 1)
-
- setFormEditInput('')
-
- e.target.reset()
-
- persistTasks([...tasks,
- {
- text: text,
- id: counterInputs
- }
- ])
-
- persistCounter()
- //setText('')
- }
-
-
- const deleteInput = (id) => {
- const deleted_task = tasks.filter(task => task.id !== id)
-
- setTasks(deleted_task)
- persistTasks(deleted_task)
-
- }
-
- const modifyInput = (id) => {
- setFormEditInput([true, id])
- }
-
- const modifyInputTwo = (e) => {
-
- e.preventDefault()
-
- if(!text.trim()) {
- setFormEditInput('')
- return
- }
-
- const taskID = tasks.findIndex(task => task.id === formEditInput[1])
-
- tasks[taskID].text = text
-
- setTasks(tasks)
- setText('')
- setFormEditInput('')
-
- persistTasks()
-
- }
-
-
return (
<>
-
+
-
-
- {
- tasks.map (task => (
-
-
-
-
{ task.text }
- ({task.id})
-
-
-
-
-
-
+
+ text={text}
+ setText={setText}
- { formEditInput[0] && task.id === formEditInput[1] ?
+ formEditInput={formEditInput}
+ setFormEditInput={setFormEditInput}
+ />
-
+
- : <>>
- }
-
-
- ))
- }
-
-
-
-
{messageInvalidText}
-
-
-
>
diff --git a/src/components/AddList.jsx b/src/components/AddList.jsx
new file mode 100644
index 0000000..83dbbc0
--- /dev/null
+++ b/src/components/AddList.jsx
@@ -0,0 +1,11 @@
+import React from 'react'
+
+const AddList = () => {
+ return (
+
+
+
+ )
+}
+
+export default AddList
diff --git a/src/components/AddTask.jsx b/src/components/AddTask.jsx
new file mode 100644
index 0000000..494991f
--- /dev/null
+++ b/src/components/AddTask.jsx
@@ -0,0 +1,105 @@
+import React, {useState} from 'react'
+
+const AddTask = (props) => {
+
+
+
+ const validateInput = (e, id = 0 ) => {
+ e.preventDefault()
+
+ props.setMessageInvalidText('')
+
+ if (!props.text.trim()) {
+ props.setMessageInvalidText('Text empty, please send a new task')
+ return
+ }
+
+ props.setTasks([...props.tasks,
+ {
+ text: props.text,
+ id: props.counterInputs
+ }
+ ])
+
+ props.setCounterInputs(props.counterInputs + 1)
+
+ props.setFormEditInput('')
+
+ e.target.reset()
+
+ persistTasks([...props.tasks,
+ {
+ text: props.text,
+ id: props.counterInputs
+ }
+ ])
+
+ persistCounter()
+ //props.setText('')
+ }
+
+ const persistTasks = (modificatedTasks) => {
+ localStorage.setItem('tasks', JSON.stringify(modificatedTasks))
+ }
+
+ const persistCounter = () => {
+ localStorage.setItem('counter', JSON.stringify(props.counterInputs))
+ }
+
+ const restoreTasks = () => {
+ let tasksCache = localStorage.getItem('tasks')
+
+ tasksCache = JSON.parse(tasksCache)
+
+ props.setTasks(tasksCache)
+
+ }
+
+ const restoreCounter = () => {
+ let counterInputCache = localStorage.getItem('counter')
+
+ counterInputCache = JSON.parse(counterInputCache)
+
+ props.setCounterInputs(counterInputCache + 1)
+ }
+
+ const checkCache = () => {
+ if (localStorage.getItem('tasks')) {
+ restoreTasks()
+ }
+
+ if (localStorage.getItem('counter')) {
+ restoreCounter()
+ }
+ return
+ }
+
+ window.onload = () => {
+ checkCache()
+ }
+
+ return (
+ <>
+
+
{props.messageInvalidText}
+
+
+
+ >
+ )
+}
+
+export default AddTask
diff --git a/src/components/Header.jsx b/src/components/Header.jsx
new file mode 100644
index 0000000..199fe8f
--- /dev/null
+++ b/src/components/Header.jsx
@@ -0,0 +1,9 @@
+import React from 'react'
+
+const Header = () => {
+ return (
+
+ )
+}
+
+export default Header
diff --git a/src/components/States.jsx.txt b/src/components/States.jsx.txt
new file mode 100644
index 0000000..6e00ddb
--- /dev/null
+++ b/src/components/States.jsx.txt
@@ -0,0 +1,26 @@
+import React, {useState} from 'react'
+
+export function States() {
+
+ const [messageInvalidText, setMessageInvalidText] = useState('')
+
+ const [tasks, setTasks] = useState([{
+ text: 'Test Task',
+ id: 616
+ }])
+
+ const [formEditInput, setFormEditInput] = useState('')
+
+ const [text, setText] = useState('')
+
+ return (
+ <>
+ {
+ const [messageInvalidText, setMessageInvalidText] = useState('')
+
+ }
+ >
+ )
+}
+
+export default States
diff --git a/src/components/TaskList.jsx b/src/components/TaskList.jsx
new file mode 100644
index 0000000..e875b6e
--- /dev/null
+++ b/src/components/TaskList.jsx
@@ -0,0 +1,94 @@
+import React, {useState} from 'react'
+
+const TaskList = (props) => {
+
+ const persistTasks = (modificatedTasks) => {
+ localStorage.setItem('tasks', JSON.stringify(modificatedTasks))
+ }
+
+ const deleteInput = (id) => {
+ const deleted_task = props.tasks.filter(task => task.id !== id)
+
+ props.setTasks(deleted_task)
+ persistTasks(deleted_task)
+
+ }
+
+ const modifyInput = (id) => {
+ props.setFormEditInput([true, id])
+ }
+
+ const modifyInputTwo = (e) => {
+
+ e.preventDefault()
+
+ if(!props.text.trim()) {
+ props.setFormEditInput('')
+ return
+ }
+
+ const taskID = props.tasks.findIndex(task => task.id === props.formEditInput[1])
+
+ props.tasks[taskID].text = props.text
+
+ props.setTasks(props.tasks)
+ props.setText('')
+ props.setFormEditInput('')
+
+ persistTasks()
+
+ }
+
+
+
+ return (
+ <>
+
+
+ {
+ props.tasks.map (task => (
+
+
+
+
{ task.text }
+ ({task.id})
+
+
+
+
+
+
+
+
+
+ { props.formEditInput[0] && task.id === props.formEditInput[1] ?
+
+
+
+ : <>>
+ }
+
+
+ ))
+ }
+
+
+ >
+ )
+}
+
+export default TaskList