|
1 | 1 | import React from "react"; |
2 | | -import { SafeAreaView } from "react-native"; |
| 2 | +import { View, Text, SafeAreaView } from "react-native"; |
| 3 | +import AppleHeader from "react-native-apple-header"; |
3 | 4 | import BouncyCheckboxGroup, { |
4 | 5 | ICheckboxButton, |
5 | 6 | } from "./lib/BouncyCheckboxGroup"; |
6 | 7 |
|
| 8 | +const _iconStyle = (borderColor: string) => ({ |
| 9 | + height: 50, |
| 10 | + width: 50, |
| 11 | + borderRadius: 25, |
| 12 | + borderColor: borderColor, |
| 13 | +}); |
| 14 | + |
7 | 15 | const styles = { |
8 | | - container: { flex: 1, alignItems: "center", justifyContent: "center" }, |
9 | | - iconStyle: { height: 50, width: 50, borderRadius: 25 }, |
| 16 | + container: { marginTop: 24 }, |
| 17 | + verticalStyle: { marginTop: 16 }, |
| 18 | + textStyle: { textDecorationLine: "none" }, |
10 | 19 | iconImageStyle: { height: 20, width: 20 }, |
11 | 20 | }; |
12 | 21 |
|
13 | 22 | const staticData: ICheckboxButton[] = [ |
14 | 23 | { |
15 | 24 | id: 0, |
16 | | - iconStyle: styles.iconStyle, |
| 25 | + fillColor: "#ff7473", |
| 26 | + unfillColor: "#fbbfbb", |
| 27 | + iconStyle: _iconStyle("#fbbfbb"), |
| 28 | + iconImageStyle: styles.iconImageStyle, |
| 29 | + }, |
| 30 | + { |
| 31 | + id: 1, |
| 32 | + fillColor: "#5567e9", |
| 33 | + unfillColor: "#afb5f5", |
| 34 | + iconStyle: _iconStyle("#afb5f5"), |
| 35 | + iconImageStyle: styles.iconImageStyle, |
| 36 | + }, |
| 37 | + { |
| 38 | + id: 2, |
| 39 | + fillColor: "#a98ae7", |
| 40 | + unfillColor: "#cab6f4", |
| 41 | + iconStyle: _iconStyle("#cab6f4"), |
| 42 | + iconImageStyle: styles.iconImageStyle, |
| 43 | + }, |
| 44 | + { |
| 45 | + id: 3, |
| 46 | + fillColor: "#fcb779", |
| 47 | + unfillColor: "#ffd1a7", |
| 48 | + iconStyle: _iconStyle("#ffd1a7"), |
| 49 | + iconImageStyle: styles.iconImageStyle, |
| 50 | + }, |
| 51 | + { |
| 52 | + id: 4, |
| 53 | + fillColor: "#2be055", |
| 54 | + unfillColor: "#cbf2d5", |
| 55 | + iconStyle: _iconStyle("#cbf2d5"), |
| 56 | + iconImageStyle: styles.iconImageStyle, |
| 57 | + }, |
| 58 | +]; |
| 59 | + |
| 60 | +const verticalStaticData: ICheckboxButton[] = [ |
| 61 | + { |
| 62 | + id: 0, |
| 63 | + text: "Watermelon", |
| 64 | + fillColor: "#ff7473", |
| 65 | + unfillColor: "#fbbfbb", |
| 66 | + iconStyle: _iconStyle("#fbbfbb"), |
| 67 | + textStyle: styles.textStyle, |
| 68 | + style: styles.verticalStyle, |
| 69 | + iconImageStyle: styles.iconImageStyle, |
| 70 | + }, |
| 71 | + { |
| 72 | + id: 1, |
| 73 | + text: "Ultramarine Blue", |
| 74 | + fillColor: "#5567e9", |
| 75 | + unfillColor: "#afb5f5", |
| 76 | + iconStyle: _iconStyle("#afb5f5"), |
| 77 | + textStyle: styles.textStyle, |
| 78 | + style: styles.verticalStyle, |
| 79 | + iconImageStyle: styles.iconImageStyle, |
| 80 | + }, |
| 81 | + { |
| 82 | + id: 2, |
| 83 | + text: "Soft Purple", |
| 84 | + fillColor: "#a98ae7", |
| 85 | + unfillColor: "#cab6f4", |
| 86 | + iconStyle: _iconStyle("#cab6f4"), |
| 87 | + textStyle: styles.textStyle, |
| 88 | + style: styles.verticalStyle, |
| 89 | + iconImageStyle: styles.iconImageStyle, |
| 90 | + }, |
| 91 | + { |
| 92 | + id: 3, |
| 93 | + text: "Takao", |
| 94 | + fillColor: "#fcb779", |
| 95 | + unfillColor: "#ffd1a7", |
| 96 | + iconStyle: _iconStyle("#ffd1a7"), |
| 97 | + textStyle: styles.textStyle, |
| 98 | + style: styles.verticalStyle, |
| 99 | + iconImageStyle: styles.iconImageStyle, |
| 100 | + }, |
| 101 | + { |
| 102 | + id: 4, |
| 103 | + text: "Malachite", |
| 104 | + fillColor: "#2be055", |
| 105 | + unfillColor: "#cbf2d5", |
| 106 | + iconStyle: _iconStyle("#cbf2d5"), |
| 107 | + textStyle: styles.textStyle, |
| 108 | + style: styles.verticalStyle, |
17 | 109 | iconImageStyle: styles.iconImageStyle, |
18 | 110 | }, |
19 | | - { id: 1, iconStyle: styles.iconStyle, iconImageStyle: styles.iconImageStyle }, |
20 | | - { id: 2, iconStyle: styles.iconStyle, iconImageStyle: styles.iconImageStyle }, |
21 | | - { id: 3, iconStyle: styles.iconStyle, iconImageStyle: styles.iconImageStyle }, |
22 | | - { id: 4, iconStyle: styles.iconStyle, iconImageStyle: styles.iconImageStyle }, |
23 | 111 | ]; |
24 | 112 |
|
25 | 113 | const App = () => { |
26 | | - return ( |
27 | | - <SafeAreaView style={styles.container}> |
28 | | - <BouncyCheckboxGroup |
29 | | - data={staticData} |
30 | | - onChange={(selectedItem: ICheckboxButton) => { |
31 | | - console.log("SelectedItem: ", JSON.stringify(selectedItem)); |
| 114 | + const imageSource = { |
| 115 | + uri: |
| 116 | + "https://images.unsplash.com/photo-1499482125586-91609c0b5fd4?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=987&q=80", |
| 117 | + }; |
| 118 | + |
| 119 | + const horizontalCheckboxGroupContainer = () => ( |
| 120 | + <> |
| 121 | + <View style={{ marginLeft: 32 }}> |
| 122 | + <Text style={{ color: "#a8a8ac", fontWeight: "500", fontSize: 16 }}> |
| 123 | + Pick your favorite color |
| 124 | + </Text> |
| 125 | + </View> |
| 126 | + <View |
| 127 | + style={{ |
| 128 | + marginTop: 16, |
| 129 | + alignItems: "center", |
| 130 | + justifyContent: "center", |
32 | 131 | }} |
33 | | - /> |
34 | | - </SafeAreaView> |
| 132 | + > |
| 133 | + <BouncyCheckboxGroup |
| 134 | + data={staticData} |
| 135 | + onChange={(selectedItem: ICheckboxButton) => { |
| 136 | + console.log("SelectedItem: ", JSON.stringify(selectedItem)); |
| 137 | + }} |
| 138 | + /> |
| 139 | + </View> |
| 140 | + </> |
| 141 | + ); |
| 142 | + |
| 143 | + const verticalCheckboxGroupContainer = () => ( |
| 144 | + <> |
| 145 | + <View style={{ marginLeft: 32, marginTop: 24 }}> |
| 146 | + <Text style={{ color: "#a8a8ac", fontWeight: "500", fontSize: 16 }}> |
| 147 | + Pick your favorite color (Horizontal Style) |
| 148 | + </Text> |
| 149 | + </View> |
| 150 | + <View |
| 151 | + style={{ |
| 152 | + marginTop: 16, |
| 153 | + marginLeft: 32, |
| 154 | + justifyContent: "center", |
| 155 | + }} |
| 156 | + > |
| 157 | + <BouncyCheckboxGroup |
| 158 | + data={verticalStaticData} |
| 159 | + style={{ flexDirection: "column" }} |
| 160 | + onChange={(selectedItem: ICheckboxButton) => { |
| 161 | + console.log("SelectedItem: ", JSON.stringify(selectedItem)); |
| 162 | + }} |
| 163 | + /> |
| 164 | + </View> |
| 165 | + </> |
| 166 | + ); |
| 167 | + |
| 168 | + return ( |
| 169 | + <> |
| 170 | + <SafeAreaView> |
| 171 | + <AppleHeader imageSource={imageSource} /> |
| 172 | + <View style={styles.container}> |
| 173 | + {horizontalCheckboxGroupContainer()} |
| 174 | + {verticalCheckboxGroupContainer()} |
| 175 | + </View> |
| 176 | + </SafeAreaView> |
| 177 | + </> |
35 | 178 | ); |
36 | 179 | }; |
37 | 180 |
|
|
0 commit comments