forked from callstack/react-native-paper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExampleList.tsx
109 lines (99 loc) · 3.67 KB
/
ExampleList.tsx
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
100
101
102
103
104
105
106
107
108
109
import * as React from 'react';
import { FlatList } from 'react-native';
import { List, Divider, withTheme, Theme } from 'react-native-paper';
import ActivityIndicatorExample from './Examples/ActivityIndicatorExample';
import AppbarExample from './Examples/AppbarExample';
import AvatarExample from './Examples/AvatarExample';
import BadgeExample from './Examples/BadgeExample';
import BannerExample from './Examples/BannerExample';
import BottomNavigationExample from './Examples/BottomNavigationExample';
import ButtonExample from './Examples/ButtonExample';
import CardExample from './Examples/CardExample';
import CheckboxExample from './Examples/CheckboxExample';
import ChipExample from './Examples/ChipExample';
import DataTableExample from './Examples/DataTableExample';
import DialogExample from './Examples/DialogExample';
import DividerExample from './Examples/DividerExample';
import FABExample from './Examples/FABExample';
import IconButtonExample from './Examples/IconButtonExample';
import ListAccordionExample from './Examples/ListAccordionExample';
import ListAccordionExampleGroup from './Examples/ListAccordionGroupExample';
import ListSectionExample from './Examples/ListSectionExample';
import MenuExample from './Examples/MenuExample';
import ProgressBarExample from './Examples/ProgressBarExample';
import RadioButtonExample from './Examples/RadioButtonExample';
import RadioButtonGroupExample from './Examples/RadioButtonGroupExample';
import SearchbarExample from './Examples/SearchbarExample';
import SnackbarExample from './Examples/SnackbarExample';
import SurfaceExample from './Examples/SurfaceExample';
import SwitchExample from './Examples/SwitchExample';
import TextExample from './Examples/TextExample';
import TextInputExample from './Examples/TextInputExample';
import ToggleButtonExample from './Examples/ToggleButtonExample';
import TouchableRippleExample from './Examples/TouchableRippleExample';
type Props = {
theme: Theme;
navigation: any;
};
export const examples: { [key: string]: any } = {
activityIndicator: ActivityIndicatorExample,
appbar: AppbarExample,
avatar: AvatarExample,
badge: BadgeExample,
banner: BannerExample,
bottomNavigation: BottomNavigationExample,
button: ButtonExample,
card: CardExample,
checkbox: CheckboxExample,
chip: ChipExample,
dataTable: DataTableExample,
dialog: DialogExample,
divider: DividerExample,
fab: FABExample,
iconButton: IconButtonExample,
listAccordion: ListAccordionExample,
listAccordionGroup: ListAccordionExampleGroup,
listSection: ListSectionExample,
menu: MenuExample,
progressbar: ProgressBarExample,
radio: RadioButtonExample,
radioGroup: RadioButtonGroupExample,
searchbar: SearchbarExample,
snackbar: SnackbarExample,
surface: SurfaceExample,
switch: SwitchExample,
text: TextExample,
textInput: TextInputExample,
toggleButton: ToggleButtonExample,
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 }: any) => (
<List.Item
title={item.data.title}
onPress={() => this.props.navigation.navigate(item.id)}
/>
);
_keyExtractor = (item: { id: string }) => 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);