Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React from 'react';
  2. import SwapiService from '../../services/swapi-service';
  3. import './people.css';
  4.  
  5. import ItemList from '../item-list';
  6. import ItemDetails from '../item-details';
  7. import Error from '../error';
  8.  
  9.  
  10.  
  11. export default class People extends React.Component {
  12.  
  13.     state = {
  14.         selectedItem: null,
  15.         hasError: false
  16.     }
  17.  
  18.     swapiService = new SwapiService();
  19.  
  20.     onItemSelected = (id) => {
  21.         this.setState({
  22.             selectedItem: id
  23.         })
  24.     }
  25.  
  26.     componentDidCatch() {
  27.         this.setState({hasError: true});
  28.     }
  29.  
  30.  
  31.     render() {
  32.         const {hasError} = this.state;
  33.        
  34.         if (hasError) {
  35.             return <Error />;
  36.         }
  37.  
  38.         return (
  39.             <div>
  40.                 <div className="row ">
  41.                     <div className="items col-md-6">
  42.                         <ItemList
  43.                         onItemSelected={this.onItemSelected}
  44.                         getData={this.swapiService.getAllPeople}
  45.                         renderItem={(item) => item.name}/>
  46.                     </div>
  47.                    
  48.  
  49.                     <div className="details col-md-6">
  50.                         <ItemDetails itemId={this.state.selectedItem}/>
  51.                     </div>
  52.                
  53.                 </div>
  54.  
  55.                 <div className="row ">
  56.                     <div className="items col-md-6">
  57.                         <ItemList
  58.                         onItemSelected={this.onItemSelected}
  59.                         getData={this.swapiService.getAllPlanets}/>
  60.                     </div>
  61.  
  62.  
  63.                     <div className="details col-md-6">
  64.                         <ItemDetails itemId={this.state.selectedItem}/>
  65.                     </div>
  66.  
  67.                 </div>
  68.                
  69.             </div>
  70.            
  71.         )
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement