A React Native component for browsing google books

react-native-google-books

This react native component is purely written in Javascript and it works in both iOS and Android platforms.

Prerequisites

Get the API key from Google Developer Console.
https://console.developers.google.com

Generate the API key and enable the Google Books API

Usage

import {GoogleBookSearch} from 'react-native-google-books';

Basic usage of GoogleBookSearch

  <GoogleBookSearch
     apikey={"API KEY FROM DEVELOPER CONSOLE"}
     onResultPress={(book)=> console.log(book)}
  />

onResultPress will give you the pressed book details.

     {
           id:'id of book',
           title:'name of the book',
           authors:['array of authors'],
           isbn:['isbn types'],
           raw:{}
      }

You can use this as an API also,

import {BookSearch} from 'react-native-google-books';
  async getGameofThronesBooks(){
    let books = await BookSearch.searchbook("game of thrones","API_KEY");
  }
  //Response of this request
  {
    status:true,
    code:200,
    data:[{}]
  }

Props Available

Property Type Default Required Description
apikey string null YES API Key from Google Developer Console. But the search works without API key also for a limited quota
onResultPress Get the pressed result as callback
searchResult Get the raw search result as callback
placeholder string Search NO Placeholder text for search box
value string NO Only if you want to preload any value in search
searchContainerStyle object NO Pass the style for the search box (container)
searchInputStyle object NO Pass the style for the TextInput
resultContainerStyle object NO Pass the style for the search result row container
resultItemStyle object NO Pass the style for the search result text
interval number 800 NO This is a typing timer. When you stop typing for 800 ms, it will fetch the results

All Props Usage

<GoogleBookSearch                    
    apikey={"API KEY"}
    value={"harry potter"}
    searchContainerStyle={{marginTop:32}}
    searchInputStyle={{fontSize:16}}
    resultContainerStyle={{padding:4}}
    resultItemStyle={{color:'blue'}}
    interval={300}
    searchResult={(result) => console.log(result)}                    
    onResultPress={(book)=> console.log(book)} 
/>

GitHub