forked from callstack/react-native-paper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExampleList.js
98 lines (88 loc) · 2.85 KB
/
ExampleList.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
/* @flow */
import * as React from 'react';
import { FlatList } from 'react-native';
import { List, Divider, withTheme, type Theme } from 'react-native-paper';
import AppbarExample from './AppbarExample';
import BannerExample from './BannerExample';
import BadgeExample from './BadgeExample';
import BottomNavigationExample from './BottomNavigationExample';
import ButtonExample from './ButtonExample';
import CardExample from './CardExample';
import CheckboxExample from './CheckboxExample';
import ChipExample from './ChipExample';
import DialogExample from './DialogExample';
import DividerExample from './DividerExample';
import FABExample from './FABExample';
import IconButtonExample from './IconButtonExample';
import ListAccordionExample from './ListAccordionExample';
import ListSectionExample from './ListSectionExample';
import ProgressBarExample from './ProgressBarExample';
import RadioButtonExample from './RadioButtonExample';
import RadioButtonGroupExample from './RadioButtonGroupExample';
import SearchbarExample from './SearchbarExample';
import SnackbarExample from './SnackbarExample';
import SurfaceExample from './SurfaceExample';
import SwitchExample from './SwitchExample';
import TextExample from './TextExample';
import TextInputExample from './TextInputExample';
import TouchableRippleExample from './TouchableRippleExample';
type Props = {
theme: Theme,
navigation: any,
};
export const examples = {
appbar: AppbarExample,
badge: BadgeExample,
banner: BannerExample,
bottomNavigation: BottomNavigationExample,
button: ButtonExample,
card: CardExample,
checkbox: CheckboxExample,
chip: ChipExample,
dialog: DialogExample,
divider: DividerExample,
fab: FABExample,
iconButton: IconButtonExample,
listAccordion: ListAccordionExample,
listSection: ListSectionExample,
progressbar: ProgressBarExample,
radio: RadioButtonExample,
radioGroup: RadioButtonGroupExample,
searchbar: SearchbarExample,
snackbar: SnackbarExample,
surface: SurfaceExample,
switch: SwitchExample,
text: TextExample,
textInput: TextInputExample,
touchableRipple: TouchableRippleExample,
};
const data = Object.keys(examples).map(id => ({ id, data: examples[id] }));
class ExampleList extends React.Component<Props> {
static navigationOptions = {
title: 'Examples',
};
_renderItem = ({ item }) => (
<List.Item
title={item.data.title}
onPress={() => this.props.navigation.navigate(item.id)}
/>
);
_keyExtractor = item => item.id;
render() {
const {
theme: {
colors: { background },
},
} = this.props;
return (
<FlatList
contentContainerStyle={{ backgroundColor: background }}
ItemSeparatorComponent={Divider}
renderItem={this._renderItem}
keyExtractor={this._keyExtractor}
data={data}
/>
);
}
}
export default withTheme(ExampleList);