danine1

Working app.js with api request for people

Mar 9th, 2019
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from "react";
  2. import "bootstrap/dist/css/bootstrap.min.css";
  3. import Header from "./components/Header";
  4. import "./App.css";
  5. import axios from "axios";
  6.  
  7. import SearchPeople from "./components/SearchPeople";
  8. import ListPeople from "./components/ListPeople";
  9. import StoryInfo from "./components/StoryInfo";
  10.  
  11. class App extends Component {
  12.   constructor(props) {
  13.     super(props);
  14.  
  15.     this.state = {
  16.       planets: [],
  17.       people: [],
  18.       store: []
  19.     };
  20.   }
  21.  
  22.   componentDidMount() {
  23.     axios
  24.       .get("https://swapi.co/api/people")
  25.       .then(json =>
  26.         json.data.results.map(result => ({
  27.           name: `${result.name}`,
  28.           id: result.id
  29.         }))
  30.       )
  31.       .then(newData => this.setState({ people: newData, store: newData }))
  32.       .catch(error => alert(error));
  33.   }
  34.  
  35.   filterNames(e) {
  36.     this.setState({
  37.       people: this.state.store.filter(item =>
  38.         item.name.toLowerCase().includes(e.target.value.toLowerCase())
  39.       )
  40.     });
  41.   }
  42.  
  43.   render() {
  44.     const { people } = this.state;
  45.     return (
  46.       <div className="App">
  47.         <Header branding="Star Wars App" />
  48.         <div className="jumbotron">Start Your Intergalactic adventure</div>
  49.         <StoryInfo />
  50.         <div className="row">
  51.           <div className="col-md-6">
  52.             <SearchPeople searchFunc={e => this.filterNames(e)} />
  53.             <ListPeople peoplenames={people} />
  54.           </div>
  55.           <div className="col-md-6">
  56.             <SearchPeople searchFunc={e => this.filterNames(e)} />
  57.           </div>
  58.         </div>
  59.       </div>
  60.     );
  61.   }
  62. }
  63.  
  64. export default App;
Add Comment
Please, Sign In to add comment