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)}
/>