Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from 'react'
  2. import { Link } from 'react-router-dom'
  3. import * as BooksAPI from './BooksAPI'
  4. import PropTypes from 'prop-types'
  5.  
  6. class Books extends Component {
  7.   state = {
  8.     currentlyReading : [],
  9.     wantToRead : [],
  10.     read : []
  11.   }
  12.   static propTypes={
  13.     ourBooks: PropTypes.array.isRequired,
  14.   }
  15.  
  16.   render() {
  17.     let currentlyReading=this.props.ourBooks.filter(book=>book.shelf==="currentlyReading");
  18.     let wantToRead=this.props.ourBooks.filter(book=>book.shelf==="wantToRead");
  19.     let read=this.props.ourBooks.filter(book=>book.shelf==="read");
  20.  
  21.     return(
  22.       <div className="list-books">
  23.         <div className="list-books-title">
  24.           <h1>MyReads</h1>
  25.         </div>
  26.         <div className="list-books-content">
  27.           <div>
  28.             <div className="bookshelf">
  29.               <h2 className="bookshelf-title">Currently Reading</h2>
  30.               <div className="bookshelf-books">
  31.                 <ol className="books-grid">
  32.                 { currentlyReading.map((book)=>(
  33.                   <li key={book.id}>
  34.                     <div className="book">
  35.                       <div className="book-top">
  36.                         <div className="book-cover" style={{ width: 128, height: 193, backgroundImage: `url(${book.imageLinks.thumbnail})` }}></div>
  37.                         <div className="book-shelf-changer">
  38.                           <select id="selector">
  39.                             <option value="move" disabled>Move to...</option>
  40.                             <option value="currentlyReading">Currently Reading</option>
  41.                             <option value="wantToRead">Want to Read</option>
  42.                             <option value="read">Read</option>
  43.                             <option value="none">None</option>
  44.                           </select>
  45.                         </div>
  46.                       </div>
  47.                       <div className="book-title">{book.title}</div>
  48.                       <div className="book-authors">{book.authors}</div>
  49.                     </div>
  50.                   </li>
  51.                 ))}
  52.                 </ol>
  53.               </div>
  54.             </div>
  55.             <div className="bookshelf">
  56.               <h2 className="bookshelf-title">Want to Read</h2>
  57.               <div className="bookshelf-books">
  58.                 <ol className="books-grid">
  59.                 { wantToRead.map((book)=>(
  60.                   <li key={book.id}>
  61.                     <div className="book">
  62.                       <div className="book-top">
  63.                         <div className="book-cover" style={{ width: 128, height: 193, backgroundImage: `url(${book.imageLinks.thumbnail})` }}></div>
  64.                         <div className="book-shelf-changer">
  65.                           <select id="selector">
  66.                             <option value="move" disabled>Move to...</option>
  67.                             <option value="currentlyReading">Currently Reading</option>
  68.                             <option value="wantToRead">Want to Read</option>
  69.                             <option value="read">Read</option>
  70.                             <option value="none">None</option>
  71.                           </select>
  72.                         </div>
  73.                       </div>
  74.                       <div className="book-title">{book.title}</div>
  75.                       <div className="book-authors">{book.authors}</div>
  76.                     </div>
  77.                   </li>
  78.                 ))}
  79.                 </ol>
  80.               </div>
  81.             </div>
  82.             <div className="bookshelf">
  83.               <h2 className="bookshelf-title">Read</h2>
  84.               <div className="bookshelf-books">
  85.                 <ol className="books-grid">
  86.                 { read.map((book)=>(
  87.                   <li key={book.id}>
  88.                     <div className="book">
  89.                       <div className="book-top">
  90.                         <div className="book-cover" style={{ width: 128, height: 192, backgroundImage: `url(${book.imageLinks.thumbnail})` }}></div>
  91.                         <div className="book-shelf-changer">
  92.                           <select>
  93.                             <option value="move" disabled>Move to...</option>
  94.                             <option value="currentlyReading">Currently Reading</option>
  95.                             <option value="wantToRead">Want to Read</option>
  96.                             <option value="read">Read</option>
  97.                             <option value="none">None</option>
  98.                           </select>
  99.                         </div>
  100.                       </div>
  101.                       <div className="book-title">{book.title}</div>
  102.                       <div className="book-authors">{book.authors}</div>
  103.                     </div>
  104.                   </li>
  105.                 ))}
  106.                 </ol>
  107.               </div>
  108.             </div>
  109.           </div>
  110.         </div>
  111.         <div className="open-search">
  112.           <Link to='/search'>Add a book</Link>
  113.         </div>
  114.       </div>
  115.  
  116.     )
  117.   }
  118. }
  119.  
  120. export default Books
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement