From 640dd85891473cb35b5d997ad3beef0e02524c00 Mon Sep 17 00:00:00 2001 From: Ibrahim Mkusa Date: Sun, 30 Apr 2023 20:22:36 -0400 Subject: ex2.10 modulize component --- part2/phonebook/src/App.js | 47 +++++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/part2/phonebook/src/App.js b/part2/phonebook/src/App.js index 593018a..fd79a34 100644 --- a/part2/phonebook/src/App.js +++ b/part2/phonebook/src/App.js @@ -1,5 +1,28 @@ +// Extract form element into its own component import { useState } from 'react' +const ShowPerson = (props) => { + const searchTerm = props.searchTerm + const persons = props.persons + if (searchTerm === undefined) { + return persons.map( (person) => { + return (
  • {person.name} {person.phoneNumber}
  • )}) + } else { + const searchedList = persons.filter( (person) => + {return person.name.includes(props.searchTerm)}); + console.log(searchedList) + return searchedList.map( (searched) => { + return (
  • {searched.name} {searched.phoneNumber}
  • ) + } ) + } + } + +const Filter = (props) => { + return ( +

    filter shown with + props.setSearchTerm(event.target.value)} />

    + ) +} const App = () => { const [persons, setPersons] = useState([ @@ -35,29 +58,14 @@ const App = () => { setPhoneNumber(event.target.value) } - const handleSearch = (event) => { - setSearchTerm(event.target.value) - } - - const ShowPerson = () => { - if (searchTerm === undefined) { - return persons.map( (person) => { - return (
  • {person.name} {person.phoneNumber}
  • )}) - } else { - const searchedList = persons.filter( (person) => - {return person.name.includes(searchTerm)}); - console.log(searchedList) - return searchedList.map( (searched) => { - return (
  • {searched.name} {searched.phoneNumber}
  • ) - } ) - } - } + return (

    Phonebook

    -

    filter shown with

    + +

    add new contact

    @@ -69,7 +77,8 @@ const App = () => {

    Numbers

    - +
    ) } -- cgit v1.2.3