Advertisement
Shell_Casing

localStorage

Sep 14th, 2019
507
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { createContext, useState } from 'react';
  2. import uuid from 'uuid/v1';
  3.  
  4. export const BookContext = createContext();
  5.  
  6. export const BookContextProvider = props => {
  7.  
  8.     const [books, setBooks] = useState([]);
  9.  
  10.     const addBook = async (title, author) => {
  11.       const booksData = await localStorage.getItem('books');
  12.       if(booksData) {
  13.           setBooks([...JSON.parse(booksData), { title, author, id: uuid()}]);
  14.           localStorage.setItem('books', JSON.stringify(books));
  15.       } else {
  16.           setBooks([...books, { title, author, id: uuid()}]);
  17.           localStorage.setItem('books', JSON.stringify(books));
  18.       }
  19.  
  20.     };
  21.  
  22.     const removeBook = async id => {
  23.       let filteredBooks = books.filter(book => book.id !== id);
  24.       await setBooks([...filteredBooks]);
  25.       localStorage.setItem('books', JSON.stringify(books));
  26.     };
  27.  
  28.     return (
  29.         <BookContext.Provider value={{ books, addBook, removeBook }}>
  30.             { props.children }
  31.         </BookContext.Provider>
  32.     );
  33.  
  34. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement