From ad1fbdb50a20533cae99275714b3ef42c4ec519b Mon Sep 17 00:00:00 2001 From: Thuan Bui Date: Fri, 24 Sep 2021 10:34:39 +0700 Subject: [PATCH] Completed 2.19 --- part2/2.15-2.18/db.json | 34 ------- part2/{2.15-2.18 => 2.15-2.20}/README.md | 0 part2/2.15-2.20/db.json | 89 ++++++++++++++++++ .../package-lock.json | 0 part2/{2.15-2.18 => 2.15-2.20}/package.json | 0 .../public/favicon.ico | Bin .../public/index.html | 0 .../public/logo192.png | Bin .../public/logo512.png | Bin .../public/manifest.json | 0 .../public/robots.txt | 0 part2/{2.15-2.18 => 2.15-2.20}/src/App.js | 14 ++- .../src/components/Filter.js | 0 .../2.15-2.20/src/components/Notification.js | 13 +++ .../src/components/Person.js | 0 .../src/components/PersonForm.js | 0 part2/{2.15-2.18 => 2.15-2.20}/src/index.css | 22 +++++ part2/{2.15-2.18 => 2.15-2.20}/src/index.js | 0 .../src/services/Contact.js | 0 19 files changed, 136 insertions(+), 36 deletions(-) delete mode 100644 part2/2.15-2.18/db.json rename part2/{2.15-2.18 => 2.15-2.20}/README.md (100%) create mode 100644 part2/2.15-2.20/db.json rename part2/{2.15-2.18 => 2.15-2.20}/package-lock.json (100%) rename part2/{2.15-2.18 => 2.15-2.20}/package.json (100%) rename part2/{2.15-2.18 => 2.15-2.20}/public/favicon.ico (100%) rename part2/{2.15-2.18 => 2.15-2.20}/public/index.html (100%) rename part2/{2.15-2.18 => 2.15-2.20}/public/logo192.png (100%) rename part2/{2.15-2.18 => 2.15-2.20}/public/logo512.png (100%) rename part2/{2.15-2.18 => 2.15-2.20}/public/manifest.json (100%) rename part2/{2.15-2.18 => 2.15-2.20}/public/robots.txt (100%) rename part2/{2.15-2.18 => 2.15-2.20}/src/App.js (85%) rename part2/{2.15-2.18 => 2.15-2.20}/src/components/Filter.js (100%) create mode 100644 part2/2.15-2.20/src/components/Notification.js rename part2/{2.15-2.18 => 2.15-2.20}/src/components/Person.js (100%) rename part2/{2.15-2.18 => 2.15-2.20}/src/components/PersonForm.js (100%) rename part2/{2.15-2.18 => 2.15-2.20}/src/index.css (50%) rename part2/{2.15-2.18 => 2.15-2.20}/src/index.js (100%) rename part2/{2.15-2.18 => 2.15-2.20}/src/services/Contact.js (100%) diff --git a/part2/2.15-2.18/db.json b/part2/2.15-2.18/db.json deleted file mode 100644 index 8ab12b2..0000000 --- a/part2/2.15-2.18/db.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "persons": [ - { - "name": "32iuy4322", - "number": "ekfwjlkfd", - "id": 1 - }, - { - "name": "THuan", - "number": "22", - "id": 5 - }, - { - "name": "Th", - "number": "32049324324", - "id": 6 - }, - { - "name": "TTTTT", - "number": "32432432432", - "id": 7 - }, - { - "name": "TTTTTT", - "number": "111111", - "id": 8 - }, - { - "name": "Huy", - "number": "987654321", - "id": 9 - } - ] -} \ No newline at end of file diff --git a/part2/2.15-2.18/README.md b/part2/2.15-2.20/README.md similarity index 100% rename from part2/2.15-2.18/README.md rename to part2/2.15-2.20/README.md diff --git a/part2/2.15-2.20/db.json b/part2/2.15-2.20/db.json new file mode 100644 index 0000000..dbe0b15 --- /dev/null +++ b/part2/2.15-2.20/db.json @@ -0,0 +1,89 @@ +{ + "persons": [ + { + "name": "THuan", + "number": "22", + "id": 5 + }, + { + "name": "Th", + "number": "32049324324", + "id": 6 + }, + { + "name": "TTTTT", + "number": "32432432432", + "id": 7 + }, + { + "name": "TTTTTT", + "number": "111111", + "id": 8 + }, + { + "name": "Huy", + "number": "987654321", + "id": 9 + }, + { + "name": "Thao", + "number": "0988289099", + "id": 10 + }, + { + "name": "Minh", + "number": "092", + "id": 11 + }, + { + "name": "Khoa", + "number": "0923121", + "id": 12 + }, + { + "name": "Tuan", + "number": "09213214", + "id": 13 + }, + { + "name": "Phung", + "number": "0394325325", + "id": 14 + }, + { + "name": "Lieu", + "number": "09343432", + "id": 15 + }, + { + "name": "ttttraasf", + "number": "093432453253", + "id": 16 + }, + { + "name": "utiot", + "number": "0324324", + "id": 17 + }, + { + "name": "tran khoa", + "number": "093432432", + "id": 18 + }, + { + "name": "Tina", + "number": "034324", + "id": 19 + }, + { + "name": "Huy Tran", + "number": "0392432432", + "id": 20 + }, + { + "name": "Tuan34", + "number": "324324", + "id": 21 + } + ] +} \ No newline at end of file diff --git a/part2/2.15-2.18/package-lock.json b/part2/2.15-2.20/package-lock.json similarity index 100% rename from part2/2.15-2.18/package-lock.json rename to part2/2.15-2.20/package-lock.json diff --git a/part2/2.15-2.18/package.json b/part2/2.15-2.20/package.json similarity index 100% rename from part2/2.15-2.18/package.json rename to part2/2.15-2.20/package.json diff --git a/part2/2.15-2.18/public/favicon.ico b/part2/2.15-2.20/public/favicon.ico similarity index 100% rename from part2/2.15-2.18/public/favicon.ico rename to part2/2.15-2.20/public/favicon.ico diff --git a/part2/2.15-2.18/public/index.html b/part2/2.15-2.20/public/index.html similarity index 100% rename from part2/2.15-2.18/public/index.html rename to part2/2.15-2.20/public/index.html diff --git a/part2/2.15-2.18/public/logo192.png b/part2/2.15-2.20/public/logo192.png similarity index 100% rename from part2/2.15-2.18/public/logo192.png rename to part2/2.15-2.20/public/logo192.png diff --git a/part2/2.15-2.18/public/logo512.png b/part2/2.15-2.20/public/logo512.png similarity index 100% rename from part2/2.15-2.18/public/logo512.png rename to part2/2.15-2.20/public/logo512.png diff --git a/part2/2.15-2.18/public/manifest.json b/part2/2.15-2.20/public/manifest.json similarity index 100% rename from part2/2.15-2.18/public/manifest.json rename to part2/2.15-2.20/public/manifest.json diff --git a/part2/2.15-2.18/public/robots.txt b/part2/2.15-2.20/public/robots.txt similarity index 100% rename from part2/2.15-2.18/public/robots.txt rename to part2/2.15-2.20/public/robots.txt diff --git a/part2/2.15-2.18/src/App.js b/part2/2.15-2.20/src/App.js similarity index 85% rename from part2/2.15-2.18/src/App.js rename to part2/2.15-2.20/src/App.js index 0e12b6b..eee3f81 100644 --- a/part2/2.15-2.18/src/App.js +++ b/part2/2.15-2.20/src/App.js @@ -1,15 +1,20 @@ import React, { useState, useEffect } from 'react' //import axios from 'axios' +import './index.css' import Filter from './components/Filter' import PersonForm from './components/PersonForm' import Person from './components/Person' import Contact from './services/Contact' +import Notification from './components/Notification' const App = () => { const [ persons, setPersons ] = useState([]) const [ newName, setNewName ] = useState('') const [ newNumber, setNewNumber ] = useState('') const [ newSearch, setNewSearch ] = useState('') + const [ errorMessage, setErrorMessage] = useState(null) + const [ errorType, setErrorType ] = useState(null) + useEffect(() => { Contact @@ -19,7 +24,6 @@ const App = () => { }) }, []) - console.log(persons) const handleNameChange = (event) => { //console.log(event.target.value) @@ -57,7 +61,12 @@ const App = () => { Contact .addContact(newPerson) .then(response => { - console.log(response) + setErrorMessage(`Added ${response.name}`) + setErrorType ('notification') + setTimeout(() => { + setErrorMessage(null) + setErrorType (null) + }, 5000) }) setPersons(persons.concat(newPerson)) } @@ -93,6 +102,7 @@ const App = () => { return (

Phonebook

+

Add new contact

diff --git a/part2/2.15-2.18/src/components/Filter.js b/part2/2.15-2.20/src/components/Filter.js similarity index 100% rename from part2/2.15-2.18/src/components/Filter.js rename to part2/2.15-2.20/src/components/Filter.js diff --git a/part2/2.15-2.20/src/components/Notification.js b/part2/2.15-2.20/src/components/Notification.js new file mode 100644 index 0000000..366dcb3 --- /dev/null +++ b/part2/2.15-2.20/src/components/Notification.js @@ -0,0 +1,13 @@ +const Notification = ({ message, type }) => { + if (message === null) { + return null + } + + return ( +
+ {message} +
+ ) + } + + export default Notification \ No newline at end of file diff --git a/part2/2.15-2.18/src/components/Person.js b/part2/2.15-2.20/src/components/Person.js similarity index 100% rename from part2/2.15-2.18/src/components/Person.js rename to part2/2.15-2.20/src/components/Person.js diff --git a/part2/2.15-2.18/src/components/PersonForm.js b/part2/2.15-2.20/src/components/PersonForm.js similarity index 100% rename from part2/2.15-2.18/src/components/PersonForm.js rename to part2/2.15-2.20/src/components/PersonForm.js diff --git a/part2/2.15-2.18/src/index.css b/part2/2.15-2.20/src/index.css similarity index 50% rename from part2/2.15-2.18/src/index.css rename to part2/2.15-2.20/src/index.css index ec2585e..54d157c 100644 --- a/part2/2.15-2.18/src/index.css +++ b/part2/2.15-2.20/src/index.css @@ -11,3 +11,25 @@ code { font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; } + +.error { + color: red; + background: #FAFAFA; + font-size: 20px; + border-style: solid; + border-radius: 5px; + padding: 10px; + margin-bottom: 10px; + max-width: 400px; +} + +.notification { + color: green; + background: #FAFAFA; + font-size: 20px; + border-style: solid; + border-radius: 5px; + padding: 10px; + margin-bottom: 10px; + max-width: 400px; +} \ No newline at end of file diff --git a/part2/2.15-2.18/src/index.js b/part2/2.15-2.20/src/index.js similarity index 100% rename from part2/2.15-2.18/src/index.js rename to part2/2.15-2.20/src/index.js diff --git a/part2/2.15-2.18/src/services/Contact.js b/part2/2.15-2.20/src/services/Contact.js similarity index 100% rename from part2/2.15-2.18/src/services/Contact.js rename to part2/2.15-2.20/src/services/Contact.js