@draftbit/core 46.7.9-fa5e7c.2 → 46.8.1-1b6459.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js +23 -5
- package/lib/commonjs/components/Checkbox/CheckboxRow.js +23 -6
- package/lib/commonjs/components/Checkbox/context.js +1 -1
- package/lib/commonjs/components/CircleImage.js +15 -1
- package/lib/commonjs/components/CircularProgress.js +26 -8
- package/lib/commonjs/components/Container.js +15 -4
- package/lib/commonjs/components/DatePicker/DatePicker.js +14 -1
- package/lib/commonjs/components/DeprecatedButton.js +20 -3
- package/lib/commonjs/components/DeprecatedCardWrapper.js +15 -1
- package/lib/commonjs/components/Divider.js +14 -1
- package/lib/commonjs/components/Elevation.js +14 -2
- package/lib/commonjs/components/FAB.js +18 -4
- package/lib/commonjs/components/NumberInput.js +10 -10
- package/lib/commonjs/components/Picker/Picker.js +10 -3
- package/lib/commonjs/components/Portal/PortalHost.js +44 -15
- package/lib/commonjs/components/Portal/PortalManager.js +34 -8
- package/lib/commonjs/components/Pressable.js +15 -2
- package/lib/commonjs/components/ProgressBar.js +37 -7
- package/lib/commonjs/components/RadioButton/RadioButton.js +13 -2
- package/lib/commonjs/components/RadioButton/RadioButtonGroup.js +15 -2
- package/lib/commonjs/mappings/DatePicker.js +8 -2
- package/lib/commonjs/mappings/DeckSwiper.js +3 -0
- package/lib/commonjs/mappings/DeckSwiperCard.js +7 -0
- package/lib/commonjs/mappings/Picker.js +5 -0
- package/lib/module/components/DatePicker/DatePicker.js +15 -2
- package/lib/module/components/NumberInput.js +10 -10
- package/lib/module/components/Picker/Picker.js +11 -4
- package/lib/module/mappings/DatePicker.js +9 -3
- package/lib/module/mappings/DeckSwiper.js +3 -0
- package/lib/module/mappings/DeckSwiperCard.js +7 -0
- package/lib/module/mappings/Picker.js +6 -1
- package/lib/typescript/src/components/DatePicker/DatePicker.d.ts +1 -0
- package/lib/typescript/src/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/lib/typescript/src/components/Picker/Picker.d.ts +1 -0
- package/lib/typescript/src/components/Picker/Picker.d.ts.map +1 -1
- package/lib/typescript/src/mappings/DatePicker.d.ts +10 -0
- package/lib/typescript/src/mappings/DatePicker.d.ts.map +1 -1
- package/lib/typescript/src/mappings/DeckSwiper.d.ts +3 -0
- package/lib/typescript/src/mappings/DeckSwiper.d.ts.map +1 -1
- package/lib/typescript/src/mappings/DeckSwiperCard.d.ts +7 -0
- package/lib/typescript/src/mappings/DeckSwiperCard.d.ts.map +1 -1
- package/lib/typescript/src/mappings/Picker.d.ts +10 -0
- package/lib/typescript/src/mappings/Picker.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/components/DatePicker/DatePicker.js +8 -3
- package/src/components/DatePicker/DatePicker.tsx +10 -1
- package/src/components/NumberInput.js +9 -9
- package/src/components/NumberInput.tsx +11 -11
- package/src/components/Picker/Picker.js +9 -3
- package/src/components/Picker/Picker.tsx +14 -2
- package/src/mappings/DatePicker.js +8 -2
- package/src/mappings/DatePicker.ts +8 -1
- package/src/mappings/DeckSwiper.js +3 -0
- package/src/mappings/DeckSwiper.ts +3 -0
- package/src/mappings/DeckSwiperCard.js +7 -0
- package/src/mappings/DeckSwiperCard.ts +7 -0
- package/src/mappings/Picker.js +6 -1
- package/src/mappings/Picker.ts +6 -0
|
@@ -18,6 +18,16 @@ export declare const SEED_DATA: {
|
|
|
18
18
|
required: boolean;
|
|
19
19
|
group: string;
|
|
20
20
|
};
|
|
21
|
+
autoDismissKeyboard: {
|
|
22
|
+
label: string;
|
|
23
|
+
description: string;
|
|
24
|
+
formType: string;
|
|
25
|
+
propType: string;
|
|
26
|
+
defaultValue: boolean;
|
|
27
|
+
editable: boolean;
|
|
28
|
+
required: boolean;
|
|
29
|
+
group: string;
|
|
30
|
+
};
|
|
21
31
|
mode: {
|
|
22
32
|
label: string;
|
|
23
33
|
description: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../../src/mappings/DatePicker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../../src/mappings/DatePicker.ts"],"names":[],"mappings":"AAiKA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeckSwiper.d.ts","sourceRoot":"","sources":["../../../../src/mappings/DeckSwiper.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"DeckSwiper.d.ts","sourceRoot":"","sources":["../../../../src/mappings/DeckSwiper.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CrB,CAAC"}
|
|
@@ -4,6 +4,13 @@ export declare const SEED_DATA: {
|
|
|
4
4
|
description: string;
|
|
5
5
|
category: string;
|
|
6
6
|
stylesPanelSections: string[];
|
|
7
|
+
layout: {
|
|
8
|
+
flex: number;
|
|
9
|
+
alignItems: string;
|
|
10
|
+
justifyContent: string;
|
|
11
|
+
padding: number;
|
|
12
|
+
borderWidth: number;
|
|
13
|
+
};
|
|
7
14
|
props: {};
|
|
8
15
|
};
|
|
9
16
|
//# sourceMappingURL=DeckSwiperCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeckSwiperCard.d.ts","sourceRoot":"","sources":["../../../../src/mappings/DeckSwiperCard.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"DeckSwiperCard.d.ts","sourceRoot":"","sources":["../../../../src/mappings/DeckSwiperCard.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;CAcrB,CAAC"}
|
|
@@ -40,6 +40,16 @@ export declare const SEED_DATA: {
|
|
|
40
40
|
formType: string;
|
|
41
41
|
propType: string;
|
|
42
42
|
};
|
|
43
|
+
autoDismissKeyboard: {
|
|
44
|
+
label: string;
|
|
45
|
+
description: string;
|
|
46
|
+
formType: string;
|
|
47
|
+
propType: string;
|
|
48
|
+
defaultValue: boolean;
|
|
49
|
+
editable: boolean;
|
|
50
|
+
required: boolean;
|
|
51
|
+
group: string;
|
|
52
|
+
};
|
|
43
53
|
label: {
|
|
44
54
|
group: string;
|
|
45
55
|
label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../../../src/mappings/Picker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../../../src/mappings/Picker.ts"],"names":[],"mappings":"AA+HA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCrB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@draftbit/core",
|
|
3
|
-
"version": "46.
|
|
3
|
+
"version": "46.8.1-1b6459.2+1b64593",
|
|
4
4
|
"description": "Core (non-native) Components",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@date-io/date-fns": "^1.3.13",
|
|
43
43
|
"@draftbit/react-theme-provider": "^2.1.1",
|
|
44
|
-
"@draftbit/types": "^46.
|
|
44
|
+
"@draftbit/types": "^46.8.1-1b6459.2+1b64593",
|
|
45
45
|
"@material-ui/core": "^4.11.0",
|
|
46
46
|
"@material-ui/pickers": "^3.2.10",
|
|
47
47
|
"@react-native-community/slider": "4.2.3",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
]
|
|
93
93
|
]
|
|
94
94
|
},
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "1b64593d591a225b64dc1a4fd0afbdcf3de444ef"
|
|
96
96
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { View, Animated, Text, StyleSheet, I18nManager, TextInput as NativeTextInput, } from "react-native";
|
|
2
|
+
import { View, Animated, Text, StyleSheet, I18nManager, TextInput as NativeTextInput, Keyboard, } from "react-native";
|
|
3
3
|
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
4
4
|
import dateFormat from "dateformat";
|
|
5
5
|
import { withTheme } from "../../theming";
|
|
@@ -25,7 +25,7 @@ const MONTHS = [
|
|
|
25
25
|
"November",
|
|
26
26
|
"December",
|
|
27
27
|
];
|
|
28
|
-
const DatePicker = ({ Icon, style, theme: { colors, typography, roundness, disabledOpacity }, date, onDateChange = () => { }, defaultValue, disabled = false, mode = "date", format, type = "underline", leftIconName, rightIconName, leftIconMode = "inset", label, labelSize, labelColor, placeholder, borderColor: inputBorderColor, borderColorActive: inputBorderColorActive, ...props }) => {
|
|
28
|
+
const DatePicker = ({ Icon, style, theme: { colors, typography, roundness, disabledOpacity }, date, onDateChange = () => { }, defaultValue, disabled = false, mode = "date", format, type = "underline", leftIconName, rightIconName, leftIconMode = "inset", label, labelSize, labelColor, placeholder, borderColor: inputBorderColor, borderColorActive: inputBorderColorActive, autoDismissKeyboard = true, ...props }) => {
|
|
29
29
|
const [value, setValue] = React.useState(date || defaultValue);
|
|
30
30
|
React.useEffect(() => {
|
|
31
31
|
if (defaultValue != null) {
|
|
@@ -113,6 +113,11 @@ const DatePicker = ({ Icon, style, theme: { colors, typography, roundness, disab
|
|
|
113
113
|
clearTimeout(_showPlaceholder());
|
|
114
114
|
};
|
|
115
115
|
}, [focused, label, placeholder]);
|
|
116
|
+
React.useEffect(() => {
|
|
117
|
+
if (pickerVisible && autoDismissKeyboard) {
|
|
118
|
+
Keyboard.dismiss();
|
|
119
|
+
}
|
|
120
|
+
}, [pickerVisible, autoDismissKeyboard]);
|
|
116
121
|
const _handleFocus = () => {
|
|
117
122
|
if (disabled) {
|
|
118
123
|
return;
|
|
@@ -132,7 +137,7 @@ const DatePicker = ({ Icon, style, theme: { colors, typography, roundness, disab
|
|
|
132
137
|
? labelSize
|
|
133
138
|
: typography.caption.fontSize;
|
|
134
139
|
const hasActiveOutline = focused;
|
|
135
|
-
let inputTextColor, activeColor, underlineColor, borderColor, placeholderColor, containerStyle, backgroundColor, inputStyle;
|
|
140
|
+
let inputTextColor, activeColor, underlineColor, borderColor = inputBorderColor, placeholderColor, containerStyle, backgroundColor, inputStyle;
|
|
136
141
|
inputTextColor = colors.strong;
|
|
137
142
|
if (disabled) {
|
|
138
143
|
activeColor = colors.light;
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
I18nManager,
|
|
13
13
|
LayoutChangeEvent,
|
|
14
14
|
TextInput as NativeTextInput,
|
|
15
|
+
Keyboard,
|
|
15
16
|
} from "react-native";
|
|
16
17
|
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
17
18
|
|
|
@@ -55,6 +56,7 @@ type Props = {
|
|
|
55
56
|
rightIconName?: string;
|
|
56
57
|
borderColor?: string;
|
|
57
58
|
borderColorActive?: string;
|
|
59
|
+
autoDismissKeyboard?: boolean;
|
|
58
60
|
} & IconSlot &
|
|
59
61
|
TextInputProps;
|
|
60
62
|
|
|
@@ -93,6 +95,7 @@ const DatePicker: React.FC<React.PropsWithChildren<Props>> = ({
|
|
|
93
95
|
placeholder,
|
|
94
96
|
borderColor: inputBorderColor,
|
|
95
97
|
borderColorActive: inputBorderColorActive,
|
|
98
|
+
autoDismissKeyboard = true,
|
|
96
99
|
...props
|
|
97
100
|
}) => {
|
|
98
101
|
const [value, setValue] = React.useState<any>(date || defaultValue);
|
|
@@ -204,6 +207,12 @@ const DatePicker: React.FC<React.PropsWithChildren<Props>> = ({
|
|
|
204
207
|
};
|
|
205
208
|
}, [focused, label, placeholder]);
|
|
206
209
|
|
|
210
|
+
React.useEffect(() => {
|
|
211
|
+
if (pickerVisible && autoDismissKeyboard) {
|
|
212
|
+
Keyboard.dismiss();
|
|
213
|
+
}
|
|
214
|
+
}, [pickerVisible, autoDismissKeyboard]);
|
|
215
|
+
|
|
207
216
|
const _handleFocus = () => {
|
|
208
217
|
if (disabled) {
|
|
209
218
|
return;
|
|
@@ -232,7 +241,7 @@ const DatePicker: React.FC<React.PropsWithChildren<Props>> = ({
|
|
|
232
241
|
let inputTextColor,
|
|
233
242
|
activeColor,
|
|
234
243
|
underlineColor,
|
|
235
|
-
borderColor,
|
|
244
|
+
borderColor = inputBorderColor,
|
|
236
245
|
placeholderColor,
|
|
237
246
|
containerStyle: StyleProp<ViewStyle>,
|
|
238
247
|
backgroundColor,
|
|
@@ -20,16 +20,8 @@ const NumberInput = ({ onChangeText, value, defaultValue, ...props }) => {
|
|
|
20
20
|
return valueToFormat.toString();
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
return "
|
|
23
|
+
return "";
|
|
24
24
|
};
|
|
25
|
-
// set currentStringNumberValue as defaultValue prop if there is a differnce on first render only
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
const defaultStringNumberValue = formatValueToStringNumber(defaultValue);
|
|
28
|
-
if (currentStringNumberValue !== defaultStringNumberValue) {
|
|
29
|
-
setCurrentStringNumberValue(defaultStringNumberValue);
|
|
30
|
-
}
|
|
31
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
32
|
-
}, []);
|
|
33
25
|
const handleChangeText = (newValue) => {
|
|
34
26
|
const newStringNumberValue = formatValueToStringNumber(newValue);
|
|
35
27
|
const number = parseFloat(newStringNumberValue);
|
|
@@ -44,6 +36,14 @@ const NumberInput = ({ onChangeText, value, defaultValue, ...props }) => {
|
|
|
44
36
|
}
|
|
45
37
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
46
38
|
}, [value]);
|
|
39
|
+
// set currentStringNumberValue as defaultValue prop if there is a differnce on first render only
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
const defaultStringNumberValue = formatValueToStringNumber(defaultValue);
|
|
42
|
+
if (currentStringNumberValue !== defaultStringNumberValue) {
|
|
43
|
+
setCurrentStringNumberValue(defaultStringNumberValue);
|
|
44
|
+
}
|
|
45
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
46
|
+
}, []);
|
|
47
47
|
return (React.createElement(TextInput, { keyboardType: "numeric", value: currentStringNumberValue, onChangeText: handleChangeText, ...props }));
|
|
48
48
|
};
|
|
49
49
|
export default NumberInput;
|
|
@@ -31,19 +31,9 @@ const NumberInput: FC<Props> = ({
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
return "
|
|
34
|
+
return "";
|
|
35
35
|
};
|
|
36
36
|
|
|
37
|
-
// set currentStringNumberValue as defaultValue prop if there is a differnce on first render only
|
|
38
|
-
useEffect(() => {
|
|
39
|
-
const defaultStringNumberValue = formatValueToStringNumber(defaultValue);
|
|
40
|
-
|
|
41
|
-
if (currentStringNumberValue !== defaultStringNumberValue) {
|
|
42
|
-
setCurrentStringNumberValue(defaultStringNumberValue);
|
|
43
|
-
}
|
|
44
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
45
|
-
}, []);
|
|
46
|
-
|
|
47
37
|
const handleChangeText = (newValue: string) => {
|
|
48
38
|
const newStringNumberValue = formatValueToStringNumber(newValue);
|
|
49
39
|
const number = parseFloat(newStringNumberValue);
|
|
@@ -62,6 +52,16 @@ const NumberInput: FC<Props> = ({
|
|
|
62
52
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
63
53
|
}, [value]);
|
|
64
54
|
|
|
55
|
+
// set currentStringNumberValue as defaultValue prop if there is a differnce on first render only
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
const defaultStringNumberValue = formatValueToStringNumber(defaultValue);
|
|
58
|
+
|
|
59
|
+
if (currentStringNumberValue !== defaultStringNumberValue) {
|
|
60
|
+
setCurrentStringNumberValue(defaultStringNumberValue);
|
|
61
|
+
}
|
|
62
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
63
|
+
}, []);
|
|
64
|
+
|
|
65
65
|
return (
|
|
66
66
|
<TextInput
|
|
67
67
|
keyboardType="numeric"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { View, StyleSheet, Text, Platform, Dimensions, } from "react-native";
|
|
2
|
+
import { View, StyleSheet, Text, Platform, Dimensions, Keyboard, } from "react-native";
|
|
3
3
|
import { omit, pickBy, identity, isObject } from "lodash";
|
|
4
4
|
import { SafeAreaView } from "react-native-safe-area-context";
|
|
5
5
|
import { Picker as NativePicker } from "@react-native-picker/picker";
|
|
@@ -32,10 +32,11 @@ function normalizeOptions(options) {
|
|
|
32
32
|
}
|
|
33
33
|
const { width: deviceWidth, height: deviceHeight } = Dimensions.get("screen");
|
|
34
34
|
const isIos = Platform.OS === "ios";
|
|
35
|
+
const isWeb = Platform.OS === "web";
|
|
35
36
|
const unstyledColor = "rgba(165, 173, 183, 1)";
|
|
36
37
|
const disabledColor = "rgb(240, 240, 240)";
|
|
37
38
|
const errorColor = "rgba(255, 69, 100, 1)";
|
|
38
|
-
const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style, placeholder, value, disabled = false, assistiveText, label, iconColor = unstyledColor, iconSize = 24, leftIconMode = "inset", leftIconName, placeholderTextColor = unstyledColor, rightIconName, type = "solid", }) => {
|
|
39
|
+
const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style, placeholder, value, disabled = false, assistiveText, label, iconColor = unstyledColor, iconSize = 24, leftIconMode = "inset", leftIconName, placeholderTextColor = unstyledColor, rightIconName, type = "solid", autoDismissKeyboard = true, }) => {
|
|
39
40
|
var _a, _b;
|
|
40
41
|
const androidPickerRef = React.useRef(undefined);
|
|
41
42
|
const [internalValue, setInternalValue] = React.useState(value || defaultValue);
|
|
@@ -59,6 +60,11 @@ const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style,
|
|
|
59
60
|
(_a = androidPickerRef === null || androidPickerRef === void 0 ? void 0 : androidPickerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
60
61
|
}
|
|
61
62
|
}, [pickerVisible, androidPickerRef]);
|
|
63
|
+
React.useEffect(() => {
|
|
64
|
+
if (pickerVisible && autoDismissKeyboard) {
|
|
65
|
+
Keyboard.dismiss();
|
|
66
|
+
}
|
|
67
|
+
}, [pickerVisible, autoDismissKeyboard]);
|
|
62
68
|
const normalizedOptions = normalizeOptions(options);
|
|
63
69
|
const pickerOptions = placeholder
|
|
64
70
|
? [{ value: placeholder, label: placeholder }, ...normalizedOptions]
|
|
@@ -186,7 +192,7 @@ const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style,
|
|
|
186
192
|
React.createElement(View, { style: styles.iosPickerContent },
|
|
187
193
|
React.createElement(Button, { Icon: Icon, type: "text", onPress: togglePickerVisible, style: styles.iosButton }, "Close"),
|
|
188
194
|
React.createElement(NativePicker, { style: styles.iosNativePicker, selectedValue: internalValue, onValueChange: handleValueChange }, pickerOptions.map((option) => (React.createElement(NativePicker.Item, { label: option.label, value: option.value, key: option.value })))))))) : null,
|
|
189
|
-
!isIos && pickerVisible ? (React.createElement(NativePicker, { enabled:
|
|
195
|
+
!isIos && (pickerVisible || isWeb) ? (React.createElement(NativePicker, { enabled: !disabled, selectedValue: internalValue, onValueChange: handleValueChange, style: styles.nonIosPicker, ref: androidPickerRef, onBlur: () => setPickerVisible(false) }, pickerOptions.map((option) => (React.createElement(NativePicker.Item, { label: option.label, value: option.value, key: option.value }))))) : null));
|
|
190
196
|
};
|
|
191
197
|
const styles = StyleSheet.create({
|
|
192
198
|
marginsContainer: {
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
ViewStyle,
|
|
8
8
|
StyleProp,
|
|
9
9
|
Dimensions,
|
|
10
|
+
Keyboard,
|
|
10
11
|
} from "react-native";
|
|
11
12
|
import { omit, pickBy, identity, isObject } from "lodash";
|
|
12
13
|
import { SafeAreaView } from "react-native-safe-area-context";
|
|
@@ -48,6 +49,7 @@ export type PickerProps = {
|
|
|
48
49
|
placeholderTextColor?: string;
|
|
49
50
|
rightIconName?: string;
|
|
50
51
|
type?: "solid" | "underline";
|
|
52
|
+
autoDismissKeyboard?: boolean;
|
|
51
53
|
theme: Theme;
|
|
52
54
|
Icon: IconSlot["Icon"];
|
|
53
55
|
};
|
|
@@ -84,6 +86,8 @@ function normalizeOptions(options: PickerProps["options"]): PickerOption[] {
|
|
|
84
86
|
|
|
85
87
|
const { width: deviceWidth, height: deviceHeight } = Dimensions.get("screen");
|
|
86
88
|
const isIos = Platform.OS === "ios";
|
|
89
|
+
const isWeb = Platform.OS === "web";
|
|
90
|
+
|
|
87
91
|
const unstyledColor = "rgba(165, 173, 183, 1)";
|
|
88
92
|
const disabledColor = "rgb(240, 240, 240)";
|
|
89
93
|
const errorColor = "rgba(255, 69, 100, 1)";
|
|
@@ -107,6 +111,7 @@ const Picker: React.FC<PickerProps> = ({
|
|
|
107
111
|
placeholderTextColor = unstyledColor,
|
|
108
112
|
rightIconName,
|
|
109
113
|
type = "solid",
|
|
114
|
+
autoDismissKeyboard = true,
|
|
110
115
|
}) => {
|
|
111
116
|
const androidPickerRef = React.useRef<any | undefined>(undefined);
|
|
112
117
|
|
|
@@ -138,6 +143,12 @@ const Picker: React.FC<PickerProps> = ({
|
|
|
138
143
|
}
|
|
139
144
|
}, [pickerVisible, androidPickerRef]);
|
|
140
145
|
|
|
146
|
+
React.useEffect(() => {
|
|
147
|
+
if (pickerVisible && autoDismissKeyboard) {
|
|
148
|
+
Keyboard.dismiss();
|
|
149
|
+
}
|
|
150
|
+
}, [pickerVisible, autoDismissKeyboard]);
|
|
151
|
+
|
|
141
152
|
const normalizedOptions = normalizeOptions(options);
|
|
142
153
|
|
|
143
154
|
const pickerOptions = placeholder
|
|
@@ -374,9 +385,10 @@ const Picker: React.FC<PickerProps> = ({
|
|
|
374
385
|
) : null}
|
|
375
386
|
|
|
376
387
|
{/* nonIosPicker */}
|
|
377
|
-
{
|
|
388
|
+
{/* Web version is collapsed by default, always show to allow direct expand */}
|
|
389
|
+
{!isIos && (pickerVisible || isWeb) ? (
|
|
378
390
|
<NativePicker
|
|
379
|
-
enabled={
|
|
391
|
+
enabled={!disabled}
|
|
380
392
|
selectedValue={internalValue}
|
|
381
393
|
onValueChange={handleValueChange}
|
|
382
394
|
style={styles.nonIosPicker}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { COMPONENT_TYPES, FORM_TYPES, PROP_TYPES, FIELD_NAME, GROUPS, Triggers, StylesPanelSections, createNumberProp, createColorProp, } from "@draftbit/types";
|
|
1
|
+
import { COMPONENT_TYPES, FORM_TYPES, PROP_TYPES, FIELD_NAME, GROUPS, Triggers, StylesPanelSections, createNumberProp, createColorProp, createStaticBoolProp, } from "@draftbit/types";
|
|
2
2
|
const SEED_DATA_PROPS = {
|
|
3
3
|
mode: {
|
|
4
4
|
label: "Mode",
|
|
@@ -31,7 +31,8 @@ const SEED_DATA_PROPS = {
|
|
|
31
31
|
label: "Border Color",
|
|
32
32
|
}),
|
|
33
33
|
borderColorActive: createColorProp({
|
|
34
|
-
label: "Border Color",
|
|
34
|
+
label: "Active Border Color",
|
|
35
|
+
description: "Color of border when date picker is active",
|
|
35
36
|
}),
|
|
36
37
|
format: {
|
|
37
38
|
label: "Format",
|
|
@@ -171,6 +172,11 @@ export const SEED_DATA = [
|
|
|
171
172
|
required: true,
|
|
172
173
|
group: GROUPS.basic,
|
|
173
174
|
},
|
|
175
|
+
autoDismissKeyboard: createStaticBoolProp({
|
|
176
|
+
label: "Auto dismiss keyboard",
|
|
177
|
+
description: "Automatically dismiss keyboard when DatePicker is opened",
|
|
178
|
+
defaultValue: true,
|
|
179
|
+
}),
|
|
174
180
|
},
|
|
175
181
|
},
|
|
176
182
|
];
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
StylesPanelSections,
|
|
9
9
|
createNumberProp,
|
|
10
10
|
createColorProp,
|
|
11
|
+
createStaticBoolProp,
|
|
11
12
|
} from "@draftbit/types";
|
|
12
13
|
|
|
13
14
|
const SEED_DATA_PROPS = {
|
|
@@ -42,7 +43,8 @@ const SEED_DATA_PROPS = {
|
|
|
42
43
|
label: "Border Color",
|
|
43
44
|
}),
|
|
44
45
|
borderColorActive: createColorProp({
|
|
45
|
-
label: "Border Color",
|
|
46
|
+
label: "Active Border Color",
|
|
47
|
+
description: "Color of border when date picker is active",
|
|
46
48
|
}),
|
|
47
49
|
format: {
|
|
48
50
|
label: "Format",
|
|
@@ -185,6 +187,11 @@ export const SEED_DATA = [
|
|
|
185
187
|
required: true,
|
|
186
188
|
group: GROUPS.basic,
|
|
187
189
|
},
|
|
190
|
+
autoDismissKeyboard: createStaticBoolProp({
|
|
191
|
+
label: "Auto dismiss keyboard",
|
|
192
|
+
description: "Automatically dismiss keyboard when DatePicker is opened",
|
|
193
|
+
defaultValue: true,
|
|
194
|
+
}),
|
|
188
195
|
},
|
|
189
196
|
},
|
|
190
197
|
];
|
|
@@ -5,6 +5,9 @@ export const SEED_DATA = {
|
|
|
5
5
|
description: "Deck swiper container",
|
|
6
6
|
category: COMPONENT_TYPES.swiper,
|
|
7
7
|
stylesPanelSections: BLOCK_STYLES_SECTIONS,
|
|
8
|
+
layout: {
|
|
9
|
+
width: "100%",
|
|
10
|
+
},
|
|
8
11
|
triggers: [Triggers.OnIndexChanged, Triggers.OnEndReached],
|
|
9
12
|
props: {
|
|
10
13
|
onIndexChanged: createActionProp({
|
|
@@ -13,6 +13,9 @@ export const SEED_DATA = {
|
|
|
13
13
|
description: "Deck swiper container",
|
|
14
14
|
category: COMPONENT_TYPES.swiper,
|
|
15
15
|
stylesPanelSections: BLOCK_STYLES_SECTIONS,
|
|
16
|
+
layout: {
|
|
17
|
+
width: "100%",
|
|
18
|
+
},
|
|
16
19
|
triggers: [Triggers.OnIndexChanged, Triggers.OnEndReached],
|
|
17
20
|
props: {
|
|
18
21
|
onIndexChanged: createActionProp({
|
|
@@ -5,5 +5,12 @@ export const SEED_DATA = {
|
|
|
5
5
|
description: "Single Deck Swiper Card item to be used in DeckSwiper",
|
|
6
6
|
category: COMPONENT_TYPES.swiper,
|
|
7
7
|
stylesPanelSections: CONTAINER_COMPONENT_STYLES_SECTIONS,
|
|
8
|
+
layout: {
|
|
9
|
+
flex: 1,
|
|
10
|
+
alignItems: "center",
|
|
11
|
+
justifyContent: "center",
|
|
12
|
+
padding: 20,
|
|
13
|
+
borderWidth: 2,
|
|
14
|
+
},
|
|
8
15
|
props: {},
|
|
9
16
|
};
|
|
@@ -9,5 +9,12 @@ export const SEED_DATA = {
|
|
|
9
9
|
description: "Single Deck Swiper Card item to be used in DeckSwiper",
|
|
10
10
|
category: COMPONENT_TYPES.swiper,
|
|
11
11
|
stylesPanelSections: CONTAINER_COMPONENT_STYLES_SECTIONS,
|
|
12
|
+
layout: {
|
|
13
|
+
flex: 1,
|
|
14
|
+
alignItems: "center",
|
|
15
|
+
justifyContent: "center",
|
|
16
|
+
padding: 20,
|
|
17
|
+
borderWidth: 2,
|
|
18
|
+
},
|
|
12
19
|
props: {},
|
|
13
20
|
};
|
package/src/mappings/Picker.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { COMPONENT_TYPES, Triggers, GROUPS, FORM_TYPES, PROP_TYPES, FIELD_NAME, createIconSizeProp, createColorProp, StylesPanelSections, } from "@draftbit/types";
|
|
1
|
+
import { COMPONENT_TYPES, Triggers, GROUPS, FORM_TYPES, PROP_TYPES, FIELD_NAME, createIconSizeProp, createColorProp, StylesPanelSections, createStaticBoolProp, } from "@draftbit/types";
|
|
2
2
|
const SEED_DATA_PROPS = {
|
|
3
3
|
label: {
|
|
4
4
|
group: GROUPS.data,
|
|
@@ -142,6 +142,11 @@ export const SEED_DATA = [
|
|
|
142
142
|
},
|
|
143
143
|
iconSize: createIconSizeProp({ defaultValue: 24 }),
|
|
144
144
|
iconColor: createColorProp({ label: "Icon Color" }),
|
|
145
|
+
autoDismissKeyboard: createStaticBoolProp({
|
|
146
|
+
label: "Auto dismiss keyboard",
|
|
147
|
+
description: "Automatically dismiss keyboard when Picker is opened",
|
|
148
|
+
defaultValue: true,
|
|
149
|
+
}),
|
|
145
150
|
},
|
|
146
151
|
layout: {},
|
|
147
152
|
},
|
package/src/mappings/Picker.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
createIconSizeProp,
|
|
9
9
|
createColorProp,
|
|
10
10
|
StylesPanelSections,
|
|
11
|
+
createStaticBoolProp,
|
|
11
12
|
} from "@draftbit/types";
|
|
12
13
|
|
|
13
14
|
const SEED_DATA_PROPS = {
|
|
@@ -157,6 +158,11 @@ export const SEED_DATA = [
|
|
|
157
158
|
},
|
|
158
159
|
iconSize: createIconSizeProp({ defaultValue: 24 }),
|
|
159
160
|
iconColor: createColorProp({ label: "Icon Color" }),
|
|
161
|
+
autoDismissKeyboard: createStaticBoolProp({
|
|
162
|
+
label: "Auto dismiss keyboard",
|
|
163
|
+
description: "Automatically dismiss keyboard when Picker is opened",
|
|
164
|
+
defaultValue: true,
|
|
165
|
+
}),
|
|
160
166
|
},
|
|
161
167
|
layout: {},
|
|
162
168
|
},
|