-
Notifications
You must be signed in to change notification settings - Fork 120
/
App.js
99 lines (87 loc) · 2.12 KB
/
App.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import React from 'react';
import {
StyleSheet,
View,
SafeAreaView,
StatusBar,
Button,
} from 'react-native';
import algoliasearch from 'algoliasearch/reactnative';
import {
InstantSearch,
connectRefinementList,
} from 'react-instantsearch-native';
import SearchBox from './src/SearchBox';
import InfiniteHits from './src/InfiniteHits';
import Filters from './src/Filters';
const searchClient = algoliasearch(
'B1G2GM9NG0',
'aadef574be1f9252bb48d4ea09b5cfe5'
);
const styles = StyleSheet.create({
safe: {
flex: 1,
backgroundColor: '#252b33',
},
container: {
flex: 1,
backgroundColor: '#FFFFFF',
},
});
const VirtualRefinementList = connectRefinementList(() => null);
class App extends React.Component {
root = {
Root: View,
props: {
style: {
flex: 1,
},
},
};
state = {
isModalOpen: false,
searchState: {},
};
toggleModal = () =>
this.setState(({ isModalOpen }) => ({
isModalOpen: !isModalOpen,
}));
onSearchStateChange = searchState =>
this.setState(() => ({
searchState,
}));
render() {
const { isModalOpen, searchState } = this.state;
return (
<SafeAreaView style={styles.safe}>
<StatusBar barStyle="light-content" />
<View style={styles.container}>
<InstantSearch
searchClient={searchClient}
indexName="demo_ecommerce"
root={this.root}
searchState={searchState}
onSearchStateChange={this.onSearchStateChange}
>
<VirtualRefinementList attribute="brand" />
<Filters
isModalOpen={isModalOpen}
searchClient={searchClient}
searchState={searchState}
toggleModal={this.toggleModal}
onSearchStateChange={this.onSearchStateChange}
/>
<SearchBox />
<Button
title="Filters"
color="#252b33"
onPress={this.toggleModal}
/>
<InfiniteHits />
</InstantSearch>
</View>
</SafeAreaView>
);
}
}
export default App;