react-native-google-books
![npm version](https://badge.fury.io/js/react-native-google-books.svg)
A React Native component for browsing google books
![](https://cdn.worldvectorlogo.com/logos/react.svg)
Compatibility
![](http://pngimg.com/uploads/apple_logo/apple_logo_PNG19682.png)
This react native component is purely written in Javascript and it works in both iOS and Android platforms.
Demo
![](https://raw.githubusercontent.com/anooj1483/react-native-google-books/master/screenshots/demo.gif)
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");
}
{
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 |
limit | number | 10 | NO | Limit the number of search 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)}
/>