@draftbit/core 42.3.3-fdd04d.0 → 42.4.0

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.
Files changed (94) hide show
  1. package/lib/commonjs/components/Checkbox/Checkbox.js +13 -2
  2. package/lib/commonjs/components/Checkbox/Checkbox.js.map +1 -1
  3. package/lib/commonjs/components/DatePicker/DatePicker.js +2 -1
  4. package/lib/commonjs/components/DatePicker/DatePicker.js.map +1 -1
  5. package/lib/commonjs/components/FieldSearchBarFull.js +16 -3
  6. package/lib/commonjs/components/FieldSearchBarFull.js.map +1 -1
  7. package/lib/commonjs/components/Picker/Picker.js +16 -2
  8. package/lib/commonjs/components/Picker/Picker.js.map +1 -1
  9. package/lib/commonjs/components/RadioButton/RadioButtonGroup.js +7 -2
  10. package/lib/commonjs/components/RadioButton/RadioButtonGroup.js.map +1 -1
  11. package/lib/commonjs/components/Slider.js +13 -2
  12. package/lib/commonjs/components/Slider.js.map +1 -1
  13. package/lib/commonjs/components/StarRating.js +2 -1
  14. package/lib/commonjs/components/StarRating.js.map +1 -1
  15. package/lib/commonjs/components/Stepper.js +5 -1
  16. package/lib/commonjs/components/Stepper.js.map +1 -1
  17. package/lib/commonjs/components/Swiper/Swiper.js +1 -33
  18. package/lib/commonjs/components/Swiper/Swiper.js.map +1 -1
  19. package/lib/commonjs/components/Switch.js +3 -0
  20. package/lib/commonjs/components/Switch.js.map +1 -1
  21. package/lib/commonjs/components/TextField.js +4 -1
  22. package/lib/commonjs/components/TextField.js.map +1 -1
  23. package/lib/commonjs/components/TextInput.js +1 -1
  24. package/lib/commonjs/components/TextInput.js.map +1 -1
  25. package/lib/commonjs/components/ToggleButton.js +13 -2
  26. package/lib/commonjs/components/ToggleButton.js.map +1 -1
  27. package/lib/module/components/Checkbox/Checkbox.js +13 -2
  28. package/lib/module/components/Checkbox/Checkbox.js.map +1 -1
  29. package/lib/module/components/DatePicker/DatePicker.js +2 -1
  30. package/lib/module/components/DatePicker/DatePicker.js.map +1 -1
  31. package/lib/module/components/DatePicker/DatePickerComponent.web.js.map +1 -1
  32. package/lib/module/components/FieldSearchBarFull.js +16 -3
  33. package/lib/module/components/FieldSearchBarFull.js.map +1 -1
  34. package/lib/module/components/Picker/Picker.js +16 -2
  35. package/lib/module/components/Picker/Picker.js.map +1 -1
  36. package/lib/module/components/RadioButton/RadioButtonGroup.js +7 -2
  37. package/lib/module/components/RadioButton/RadioButtonGroup.js.map +1 -1
  38. package/lib/module/components/Slider.js +13 -2
  39. package/lib/module/components/Slider.js.map +1 -1
  40. package/lib/module/components/StarRating.js +2 -1
  41. package/lib/module/components/StarRating.js.map +1 -1
  42. package/lib/module/components/Stepper.js +5 -1
  43. package/lib/module/components/Stepper.js.map +1 -1
  44. package/lib/module/components/Swiper/Swiper.js +2 -34
  45. package/lib/module/components/Swiper/Swiper.js.map +1 -1
  46. package/lib/module/components/Switch.js +3 -0
  47. package/lib/module/components/Switch.js.map +1 -1
  48. package/lib/module/components/TextField.js +4 -1
  49. package/lib/module/components/TextField.js.map +1 -1
  50. package/lib/module/components/TextInput.js +1 -1
  51. package/lib/module/components/TextInput.js.map +1 -1
  52. package/lib/module/components/ToggleButton.js +13 -2
  53. package/lib/module/components/ToggleButton.js.map +1 -1
  54. package/lib/typescript/src/components/Checkbox/Checkbox.d.ts +1 -0
  55. package/lib/typescript/src/components/DatePicker/DatePicker.d.ts +1 -0
  56. package/lib/typescript/src/components/FieldSearchBarFull.d.ts +3 -2
  57. package/lib/typescript/src/components/Picker/Picker.d.ts +1 -1
  58. package/lib/typescript/src/components/Picker/PickerTypes.d.ts +2 -1
  59. package/lib/typescript/src/components/RadioButton/RadioButtonGroup.d.ts +2 -1
  60. package/lib/typescript/src/components/Slider.d.ts +4 -1
  61. package/lib/typescript/src/components/StarRating.d.ts +1 -0
  62. package/lib/typescript/src/components/Stepper.d.ts +1 -0
  63. package/lib/typescript/src/components/Swiper/Swiper.d.ts +1 -45
  64. package/lib/typescript/src/components/TextField.d.ts +1 -0
  65. package/lib/typescript/src/components/TextInput.d.ts +1 -1
  66. package/lib/typescript/src/components/ToggleButton.d.ts +1 -0
  67. package/package.json +2 -2
  68. package/src/components/Checkbox/Checkbox.js +13 -3
  69. package/src/components/Checkbox/Checkbox.tsx +22 -3
  70. package/src/components/DatePicker/DatePicker.js +2 -2
  71. package/src/components/DatePicker/DatePicker.tsx +4 -2
  72. package/src/components/FieldSearchBarFull.js +12 -2
  73. package/src/components/FieldSearchBarFull.tsx +22 -5
  74. package/src/components/Picker/Picker.js +12 -2
  75. package/src/components/Picker/Picker.tsx +19 -3
  76. package/src/components/Picker/PickerTypes.ts +3 -2
  77. package/src/components/RadioButton/RadioButtonGroup.js +10 -2
  78. package/src/components/RadioButton/RadioButtonGroup.tsx +19 -3
  79. package/src/components/Slider.js +11 -3
  80. package/src/components/Slider.tsx +18 -3
  81. package/src/components/StarRating.js +2 -2
  82. package/src/components/StarRating.tsx +5 -1
  83. package/src/components/Stepper.js +5 -2
  84. package/src/components/Stepper.tsx +10 -2
  85. package/src/components/Swiper/Swiper.js +2 -20
  86. package/src/components/Swiper/Swiper.tsx +0 -27
  87. package/src/components/Switch.js +3 -0
  88. package/src/components/Switch.tsx +5 -0
  89. package/src/components/TextField.js +5 -1
  90. package/src/components/TextField.tsx +5 -1
  91. package/src/components/TextInput.js +1 -1
  92. package/src/components/TextInput.tsx +2 -2
  93. package/src/components/ToggleButton.js +10 -2
  94. package/src/components/ToggleButton.tsx +18 -3
@@ -43,6 +43,7 @@ const Checkbox = ({
43
43
  uncheckedColor,
44
44
  indeterminateColor,
45
45
  initialValue,
46
+ defaultValue,
46
47
  checkedIcon = "MaterialCommunityIcons/checkbox-marked",
47
48
  uncheckedIcon = "MaterialCommunityIcons/checkbox-blank-outline",
48
49
  indeterminateIcon = "AntDesign/minussquareo",
@@ -50,6 +51,10 @@ const Checkbox = ({
50
51
  style,
51
52
  ...rest
52
53
  }) => {
54
+ const [internalValue, setInternalValue] = React.useState(status || defaultValue);
55
+ React.useEffect(() => {
56
+ setInternalValue(status);
57
+ }, [status]);
53
58
  const previousInitialValue = (0, _hooks.usePrevious)(initialValue);
54
59
  React.useEffect(() => {
55
60
  if (initialValue !== previousInitialValue) {
@@ -70,8 +75,14 @@ const Checkbox = ({
70
75
  [CheckboxStatus.Indeterminate]: indeterminateIcon
71
76
  };
72
77
  const checkboxColor = colorsMap[status];
78
+
79
+ const handlePress = () => {
80
+ setInternalValue(internalValue === CheckboxStatus.Unchecked ? CheckboxStatus.Checked : CheckboxStatus.Unchecked);
81
+ onPress(internalValue === CheckboxStatus.Unchecked);
82
+ };
83
+
73
84
  return /*#__PURE__*/React.createElement(_Touchable.default, _extends({}, rest, {
74
- onPress: () => onPress(status === "unchecked" ? true : false),
85
+ onPress: handlePress,
75
86
  disabled: disabled,
76
87
  accessibilityState: {
77
88
  disabled
@@ -84,7 +95,7 @@ const Checkbox = ({
84
95
  }]
85
96
  }), /*#__PURE__*/React.createElement(Icon, {
86
97
  style: styles.icon,
87
- name: iconsMap[status],
98
+ name: iconsMap[internalValue],
88
99
  size: size,
89
100
  color: checkboxColor
90
101
  }), /*#__PURE__*/React.createElement(_reactNative.View, {
@@ -1 +1 @@
1
- {"version":3,"sources":["Checkbox.tsx"],"names":["CheckboxStatus","Checkbox","Icon","status","Unchecked","disabled","onPress","color","uncheckedColor","indeterminateColor","initialValue","checkedIcon","uncheckedIcon","indeterminateIcon","size","style","rest","previousInitialValue","React","useEffect","colors","colorsMap","Checked","primary","Indeterminate","light","iconsMap","checkboxColor","styles","container","width","height","icon","StyleSheet","absoluteFill","fillContainer","fill","opacity","borderColor","create","borderRadius","alignItems","justifyContent","alignSelf","SEED_DATA","name","tag","category","COMPONENT_TYPES","input","triggers","Triggers","OnPress","props","fieldName","defaultValue","valuePropName","handlerPropName","group","GROUPS","basic","label","description"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n TouchableHighlightProps,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport {\n COMPONENT_TYPES,\n createBoolProp,\n createIconProp,\n createStaticNumberProp,\n createColorProp,\n createFieldNameProp,\n GROUPS,\n Triggers,\n} from \"@draftbit/types\";\nimport { useTheme } from \"../../theming\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport Touchable from \"../Touchable\";\nimport { usePrevious } from \"../../hooks\";\n\nexport enum CheckboxStatus {\n Checked = \"checked\",\n Unchecked = \"unchecked\",\n Indeterminate = \"indeterminate\",\n}\n\nexport interface CheckboxProps {\n status?: CheckboxStatus;\n disabled?: boolean;\n onPress?: (checked: boolean) => void;\n color?: string;\n uncheckedColor?: string;\n indeterminateColor?: string;\n checkedIcon?: string;\n uncheckedIcon?: string;\n indeterminateIcon?: string;\n initialValue?: boolean;\n size?: number;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Checkbox: React.FC<CheckboxProps & TouchableHighlightProps & IconSlot> =\n ({\n Icon,\n status = CheckboxStatus.Unchecked,\n disabled = false,\n onPress = () => {},\n color,\n uncheckedColor,\n indeterminateColor,\n initialValue,\n checkedIcon = \"MaterialCommunityIcons/checkbox-marked\",\n uncheckedIcon = \"MaterialCommunityIcons/checkbox-blank-outline\",\n indeterminateIcon = \"AntDesign/minussquareo\",\n size = 24,\n style,\n ...rest\n }) => {\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue) {\n onPress(initialValue);\n }\n }, [initialValue, previousInitialValue, onPress]);\n const { colors } = useTheme();\n\n const colorsMap = {\n [CheckboxStatus.Checked]: color || colors.primary,\n [CheckboxStatus.Unchecked]: uncheckedColor || colors.primary,\n [CheckboxStatus.Indeterminate]: indeterminateColor || colors.light,\n };\n\n const iconsMap = {\n [CheckboxStatus.Checked]: checkedIcon,\n [CheckboxStatus.Unchecked]: uncheckedIcon,\n [CheckboxStatus.Indeterminate]: indeterminateIcon,\n };\n\n const checkboxColor = colorsMap[status];\n\n return (\n <Touchable\n {...rest}\n onPress={() => onPress(status === \"unchecked\" ? true : false)}\n disabled={disabled}\n accessibilityState={{ disabled }}\n accessibilityRole=\"button\"\n accessibilityLiveRegion=\"polite\"\n style={[styles.container, style, { width: size, height: size }]}\n >\n <Icon\n style={styles.icon}\n name={iconsMap[status]}\n size={size}\n color={checkboxColor}\n />\n <View style={[StyleSheet.absoluteFill, styles.fillContainer]}>\n <View\n style={[\n styles.fill,\n { opacity: disabled ? 0.5 : 1 },\n { borderColor: checkboxColor },\n ]}\n />\n </View>\n </Touchable>\n );\n };\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n },\n fillContainer: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n icon: {\n alignSelf: \"center\",\n },\n fill: {\n borderRadius: 5,\n width: 30,\n height: 30,\n alignSelf: \"center\",\n },\n});\n\nexport default Checkbox;\n\nexport const SEED_DATA = {\n name: \"Checkbox\",\n tag: \"Checkbox\",\n category: COMPONENT_TYPES.input,\n triggers: [Triggers.OnPress],\n props: {\n fieldName: createFieldNameProp({\n defaultValue: \"checkboxValue\",\n valuePropName: \"status\",\n handlerPropName: \"onPress\",\n }),\n color: createColorProp({\n group: GROUPS.basic,\n label: \"Color\",\n description: \"Color for the button (used when the checkbox is checked)\",\n defaultValue: null,\n }),\n uncheckedColor: createColorProp({\n group: GROUPS.basic,\n label: \"Unselected Color\",\n description: \"Color for the button when the checkbox is unchecked\",\n defaultValue: null,\n }),\n indeterminateColor: createColorProp({\n group: GROUPS.basic,\n label: \"Indeterminate Color\",\n description: \"Color for the button when the checkbox is indeterminate\",\n defaultValue: null,\n }),\n disabled: createBoolProp({\n label: \"Disabled\",\n description: \"Whether the checkbox is disabled\",\n }),\n size: createStaticNumberProp({\n label: \"Size\",\n description: \"Specifies the size of the icon\",\n defaultValue: null,\n }),\n checkedIcon: createIconProp({\n label: \"Checked Icon\",\n description: 'Icon to show when the checkbox status is \"checked\"',\n defaultValue: null,\n }),\n uncheckedIcon: createIconProp({\n label: \"Unchecked Icon\",\n description: 'Icon to show when the checkbox status is \"unchecked\"',\n defaultValue: null,\n }),\n indeterminateIcon: createIconProp({\n label: \"Indeterminate Icon\",\n description: 'Icon to show when the checkbox status is \"indeterminate\"',\n defaultValue: null,\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["Checkbox.tsx"],"names":["CheckboxStatus","Checkbox","Icon","status","Unchecked","disabled","onPress","color","uncheckedColor","indeterminateColor","initialValue","defaultValue","checkedIcon","uncheckedIcon","indeterminateIcon","size","style","rest","internalValue","setInternalValue","React","useState","useEffect","previousInitialValue","colors","colorsMap","Checked","primary","Indeterminate","light","iconsMap","checkboxColor","handlePress","styles","container","width","height","icon","StyleSheet","absoluteFill","fillContainer","fill","opacity","borderColor","create","borderRadius","alignItems","justifyContent","alignSelf","SEED_DATA","name","tag","category","COMPONENT_TYPES","input","triggers","Triggers","OnPress","props","fieldName","valuePropName","handlerPropName","group","GROUPS","basic","label","description"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n TouchableHighlightProps,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport {\n COMPONENT_TYPES,\n createBoolProp,\n createIconProp,\n createStaticNumberProp,\n createColorProp,\n createFieldNameProp,\n GROUPS,\n Triggers,\n} from \"@draftbit/types\";\nimport { useTheme } from \"../../theming\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport Touchable from \"../Touchable\";\nimport { usePrevious } from \"../../hooks\";\n\nexport enum CheckboxStatus {\n Checked = \"checked\",\n Unchecked = \"unchecked\",\n Indeterminate = \"indeterminate\",\n}\n\nexport interface CheckboxProps {\n status?: CheckboxStatus;\n disabled?: boolean;\n onPress?: (checked: boolean) => void;\n color?: string;\n uncheckedColor?: string;\n indeterminateColor?: string;\n checkedIcon?: string;\n uncheckedIcon?: string;\n indeterminateIcon?: string;\n initialValue?: boolean; // deprecated\n defaultValue?: CheckboxStatus;\n size?: number;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Checkbox: React.FC<CheckboxProps & TouchableHighlightProps & IconSlot> =\n ({\n Icon,\n status = CheckboxStatus.Unchecked,\n disabled = false,\n onPress = () => {},\n color,\n uncheckedColor,\n indeterminateColor,\n initialValue,\n defaultValue,\n checkedIcon = \"MaterialCommunityIcons/checkbox-marked\",\n uncheckedIcon = \"MaterialCommunityIcons/checkbox-blank-outline\",\n indeterminateIcon = \"AntDesign/minussquareo\",\n size = 24,\n style,\n ...rest\n }) => {\n const [internalValue, setInternalValue] = React.useState<CheckboxStatus>(\n status || defaultValue\n );\n\n React.useEffect(() => {\n setInternalValue(status);\n }, [status]);\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue) {\n onPress(initialValue);\n }\n }, [initialValue, previousInitialValue, onPress]);\n const { colors } = useTheme();\n\n const colorsMap = {\n [CheckboxStatus.Checked]: color || colors.primary,\n [CheckboxStatus.Unchecked]: uncheckedColor || colors.primary,\n [CheckboxStatus.Indeterminate]: indeterminateColor || colors.light,\n };\n\n const iconsMap = {\n [CheckboxStatus.Checked]: checkedIcon,\n [CheckboxStatus.Unchecked]: uncheckedIcon,\n [CheckboxStatus.Indeterminate]: indeterminateIcon,\n };\n\n const checkboxColor = colorsMap[status];\n\n const handlePress = () => {\n setInternalValue(\n internalValue === CheckboxStatus.Unchecked\n ? CheckboxStatus.Checked\n : CheckboxStatus.Unchecked\n );\n onPress(internalValue === CheckboxStatus.Unchecked);\n };\n\n return (\n <Touchable\n {...rest}\n onPress={handlePress}\n disabled={disabled}\n accessibilityState={{ disabled }}\n accessibilityRole=\"button\"\n accessibilityLiveRegion=\"polite\"\n style={[styles.container, style, { width: size, height: size }]}\n >\n <Icon\n style={styles.icon}\n name={iconsMap[internalValue]}\n size={size}\n color={checkboxColor}\n />\n <View style={[StyleSheet.absoluteFill, styles.fillContainer]}>\n <View\n style={[\n styles.fill,\n { opacity: disabled ? 0.5 : 1 },\n { borderColor: checkboxColor },\n ]}\n />\n </View>\n </Touchable>\n );\n };\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n },\n fillContainer: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n icon: {\n alignSelf: \"center\",\n },\n fill: {\n borderRadius: 5,\n width: 30,\n height: 30,\n alignSelf: \"center\",\n },\n});\n\nexport default Checkbox;\n\nexport const SEED_DATA = {\n name: \"Checkbox\",\n tag: \"Checkbox\",\n category: COMPONENT_TYPES.input,\n triggers: [Triggers.OnPress],\n props: {\n fieldName: createFieldNameProp({\n defaultValue: \"checkboxValue\",\n valuePropName: \"status\",\n handlerPropName: \"onPress\",\n }),\n color: createColorProp({\n group: GROUPS.basic,\n label: \"Color\",\n description: \"Color for the button (used when the checkbox is checked)\",\n defaultValue: null,\n }),\n uncheckedColor: createColorProp({\n group: GROUPS.basic,\n label: \"Unselected Color\",\n description: \"Color for the button when the checkbox is unchecked\",\n defaultValue: null,\n }),\n indeterminateColor: createColorProp({\n group: GROUPS.basic,\n label: \"Indeterminate Color\",\n description: \"Color for the button when the checkbox is indeterminate\",\n defaultValue: null,\n }),\n disabled: createBoolProp({\n label: \"Disabled\",\n description: \"Whether the checkbox is disabled\",\n }),\n size: createStaticNumberProp({\n label: \"Size\",\n description: \"Specifies the size of the icon\",\n defaultValue: null,\n }),\n checkedIcon: createIconProp({\n label: \"Checked Icon\",\n description: 'Icon to show when the checkbox status is \"checked\"',\n defaultValue: null,\n }),\n uncheckedIcon: createIconProp({\n label: \"Unchecked Icon\",\n description: 'Icon to show when the checkbox status is \"unchecked\"',\n defaultValue: null,\n }),\n indeterminateIcon: createIconProp({\n label: \"Indeterminate Icon\",\n description: 'Icon to show when the checkbox status is \"indeterminate\"',\n defaultValue: null,\n }),\n },\n};\n"]}
@@ -52,6 +52,7 @@ const DatePicker = ({
52
52
  date,
53
53
  onDateChange = () => {},
54
54
  initialValue,
55
+ defaultValue,
55
56
  disabled = false,
56
57
  mode = "date",
57
58
  format,
@@ -63,7 +64,7 @@ const DatePicker = ({
63
64
  placeholder,
64
65
  ...props
65
66
  }) => {
66
- const [value, setValue] = React.useState(date);
67
+ const [value, setValue] = React.useState(date || defaultValue);
67
68
  const [pickerVisible, setPickerVisible] = React.useState(false);
68
69
  const [labeled] = React.useState(new _reactNative.Animated.Value(date ? 0 : 1));
69
70
  const [placeholder1, setPlaceholder1] = React.useState("");
@@ -1 +1 @@
1
- {"version":3,"sources":["DatePicker.tsx"],"names":["AnimatedText","Animated","createAnimatedComponent","Text","FOCUS_ANIMATION_DURATION","BLUR_ANIMATION_DURATION","ICON_SIZE","MONTHS","DatePicker","Icon","style","theme","colors","typography","roundness","disabledOpacity","date","onDateChange","initialValue","disabled","mode","format","type","leftIconName","rightIconName","leftIconMode","label","placeholder","props","value","setValue","React","useState","pickerVisible","setPickerVisible","labeled","Value","placeholder1","setPlaceholder1","focused","setFocused","labelLayout","setLabelLayout","measured","width","previousInitialValue","useEffect","initialValueStr","toString","previousInitialValueStr","getValidDate","Date","getMonth","formatDate","newDate","toLocaleTimeString","toLocaleString","getDate","getFullYear","toggleVisibility","_handleBlur","_handleFocus","insets","_hidePlaceholder","timing","toValue","duration","useNativeDriver","start","_showPlaceholder","setTimeout","clearTimeout","MINIMIZED_LABEL_Y_OFFSET","caption","lineHeight","OUTLINE_MINIMIZED_LABEL_Y_OFFSET","MAXIMIZED_LABEL_FONT_SIZE","subtitle1","fontSize","MINIMIZED_LABEL_FONT_SIZE","hasActiveOutline","inputTextColor","activeColor","underlineColor","borderColor","placeholderColor","containerStyle","backgroundColor","inputStyle","strong","light","divider","primary","background","paddingVertical","color","paddingLeft","paddingRight","height","borderTopLeftRadius","borderTopRightRadius","paddingBottom","marginTop","borderRadius","borderWidth","paddingTop","opacity","paddingHorizontal","marginLeft","leftIconColor","leftIconProps","size","name","leftIconStyle","position","labelStyle","top","left","transform","translateY","interpolate","inputRange","outputRange","scale","translateX","inputStyles","styles","input","marginHorizontal","container","underline","scaleY","StyleSheet","absoluteFill","e","nativeEvent","layout","right","picker","pickerContainer","bottom","Platform","OS","closeButton","_event","data","create","alignSelf","flexDirection","justifyContent","flexGrow","textAlignVertical","margin","textAlign","I18nManager","isRTL"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n Animated,\n Text,\n StyleSheet,\n StyleProp,\n ViewStyle,\n TextStyle,\n Platform,\n TextInputProps,\n ImageStyle,\n I18nManager,\n LayoutChangeEvent,\n TextInput as NativeTextInput,\n} from \"react-native\";\nimport { useSafeAreaInsets } from \"react-native-safe-area-context\";\n\nimport dateFormat from \"dateformat\";\nimport { withTheme } from \"../../theming\";\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport Touchable from \"../Touchable\";\nimport DateTimePicker from \"./DatePickerComponent\";\n\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { usePrevious } from \"../../hooks\";\n\nconst AnimatedText = Animated.createAnimatedComponent(Text);\n\nconst FOCUS_ANIMATION_DURATION = 150;\nconst BLUR_ANIMATION_DURATION = 180;\nconst ICON_SIZE = 24;\n\ntype Props = {\n style?: StyleProp<ViewStyle> & { height?: number };\n theme: Theme;\n // initialDate?: string;\n // locale?: string;\n // minuteInterval?: number;\n // timeZoneOffsetInMinutes?: number;\n // error?: boolean;\n // type?: string;\n date?: Date;\n format?: string;\n onDateChange?: (data?: Date) => void;\n initialValue?: Date;\n disabled?: boolean;\n mode?: \"date\" | \"time\" | \"datetime\";\n type?: \"solid\" | \"underline\";\n label?: string;\n placeholder?: string;\n leftIconName?: string;\n leftIconMode?: \"outset\" | \"inset\";\n rightIconName?: string;\n} & IconSlot &\n TextInputProps;\n\nconst MONTHS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst DatePicker: React.FC<Props> = ({\n Icon,\n style,\n theme: { colors, typography, roundness, disabledOpacity },\n date,\n onDateChange = () => {},\n initialValue,\n disabled = false,\n mode = \"date\",\n format,\n type = \"underline\",\n leftIconName,\n rightIconName,\n leftIconMode = \"inset\",\n label,\n placeholder,\n ...props\n}) => {\n const [value, setValue] = React.useState<any>(date);\n const [pickerVisible, setPickerVisible] = React.useState(false);\n const [labeled] = React.useState<Animated.Value>(\n new Animated.Value(date ? 0 : 1)\n );\n const [placeholder1, setPlaceholder1] = React.useState(\"\");\n const [focused, setFocused] = React.useState<boolean>(false);\n const [labelLayout, setLabelLayout] = React.useState<{\n measured: Boolean;\n width: number;\n }>({ measured: false, width: 0 });\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n const initialValueStr = initialValue ? initialValue.toString() : \"\";\n const previousInitialValueStr = previousInitialValue\n ? // This weirdly complains about being possibly undefined despite being inside a ternary\n // @ts-ignore\n previousInitialValue.toString()\n : \"\";\n if (initialValueStr !== previousInitialValueStr) {\n setValue(initialValue);\n onDateChange(initialValue);\n }\n }, [initialValue, previousInitialValue, setValue, onDateChange]);\n\n const getValidDate = (): Date => {\n if (!value) {\n return new Date();\n }\n return typeof value?.getMonth === \"function\" ? value : new Date();\n };\n\n const formatDate = (): string => {\n if (!value) return \"\";\n let newDate = getValidDate();\n\n if (format) return dateFormat(newDate, format);\n\n if (mode === \"time\") {\n return `${newDate.toLocaleTimeString()}`;\n }\n\n if (mode === \"datetime\") {\n return `${newDate.toLocaleString()}`;\n }\n\n return `${\n MONTHS[newDate.getMonth()]\n } ${newDate.getDate()}, ${newDate.getFullYear()}`;\n };\n\n const toggleVisibility = async () => {\n setPickerVisible(!pickerVisible);\n focused ? _handleBlur() : _handleFocus();\n };\n const insets = useSafeAreaInsets();\n\n // const _restoreLabel = () =>\n // Animated.timing(labeled, {\n // toValue: 1,\n // duration: FOCUS_ANIMATION_DURATION,\n // useNativeDriver: true,\n // }).start();\n\n // const _minmizeLabel = () =>\n // Animated.timing(labeled, {\n // toValue: 0,\n // duration: BLUR_ANIMATION_DURATION,\n // useNativeDriver: true,\n // }).start();\n\n // const _showPlaceholder = () =>\n // setTimeout(() => setPlaceholder1(placeholder || \"\"), 50);\n\n const _hidePlaceholder = () => {\n setPlaceholder1(\"\");\n };\n\n React.useEffect(() => {\n setValue(date);\n }, [date]);\n\n React.useEffect(() => {\n if (value || focused || placeholder1) {\n // _minmizeLabel();\n Animated.timing(labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n } else {\n // _restoreLabel();\n Animated.timing(labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n }\n }, [value, focused, placeholder1, labeled]);\n\n React.useEffect(() => {\n const _showPlaceholder = () =>\n setTimeout(() => setPlaceholder1(placeholder || \"\"), 50);\n if (focused || !label) {\n _showPlaceholder();\n } else {\n _hidePlaceholder();\n }\n return () => {\n clearTimeout(_showPlaceholder());\n };\n }, [focused, label, placeholder]);\n\n const _handleFocus = () => {\n if (disabled) {\n return;\n }\n\n setFocused(true);\n };\n\n const _handleBlur = () => {\n if (disabled) {\n return;\n }\n setFocused(false);\n };\n\n const MINIMIZED_LABEL_Y_OFFSET = -(typography.caption.lineHeight + 4);\n const OUTLINE_MINIMIZED_LABEL_Y_OFFSET = -(16 * 0.5 + 4);\n const MAXIMIZED_LABEL_FONT_SIZE = typography.subtitle1.fontSize;\n const MINIMIZED_LABEL_FONT_SIZE = typography.caption.fontSize;\n\n const hasActiveOutline = focused;\n\n let inputTextColor,\n activeColor,\n underlineColor,\n borderColor,\n placeholderColor,\n containerStyle: StyleProp<ViewStyle>,\n backgroundColor,\n inputStyle: StyleProp<TextStyle>;\n\n inputTextColor = colors.strong;\n if (disabled) {\n activeColor = colors.light;\n placeholderColor = colors.light;\n borderColor = \"transparent\";\n underlineColor = \"transparent\";\n backgroundColor = colors.divider;\n } else {\n activeColor = colors.primary;\n placeholderColor = borderColor = colors.light;\n underlineColor = colors.light;\n backgroundColor = colors.background;\n }\n\n const { lineHeight, ...subtitle1 } = typography.subtitle1;\n\n inputStyle = {\n paddingVertical: 0,\n color: inputTextColor,\n paddingLeft:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n paddingRight: rightIconName ? ICON_SIZE + 16 + 4 : 12,\n ...subtitle1,\n height: lineHeight,\n };\n\n if (type === \"underline\") {\n containerStyle = {\n borderTopLeftRadius: roundness,\n borderTopRightRadius: roundness,\n paddingBottom: 12,\n marginTop: 16,\n };\n } else {\n containerStyle = {\n borderRadius: roundness,\n borderColor: hasActiveOutline ? activeColor : borderColor,\n borderWidth: 1,\n paddingTop: labeled ? 16 * 1.5 : 16,\n paddingBottom: labeled ? 16 * 0.5 : 16,\n opacity: disabled ? disabledOpacity : 1,\n backgroundColor,\n };\n\n inputStyle.paddingHorizontal = 12;\n }\n\n if (leftIconName && leftIconMode === \"outset\") {\n containerStyle.marginLeft = ICON_SIZE + 8;\n }\n\n let leftIconColor;\n if (focused) {\n leftIconColor = colors.primary;\n } else {\n leftIconColor = colors.light;\n }\n\n const leftIconProps = {\n size: 24,\n color: leftIconColor,\n name: leftIconName || \"\",\n };\n\n const leftIconStyle: ImageStyle = {\n position: \"absolute\",\n marginTop:\n type === \"solid\"\n ? leftIconMode === \"inset\"\n ? MINIMIZED_LABEL_FONT_SIZE + 4\n : 16\n : leftIconMode === \"outset\"\n ? 16\n : 0,\n };\n\n const labelStyle = {\n ...typography.subtitle1,\n top: type === \"solid\" ? 16 : 0,\n left:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n transform: [\n {\n // Move label to top\n translateY: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n type === \"solid\"\n ? OUTLINE_MINIMIZED_LABEL_Y_OFFSET\n : MINIMIZED_LABEL_Y_OFFSET,\n 0,\n ],\n }),\n },\n {\n // Make label smaller\n scale: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE,\n 1,\n ],\n }),\n },\n {\n // Offset label scale since RN doesn't support transform origin\n translateX: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n -(1 - MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE) *\n (labelLayout.width / 2),\n 0,\n ],\n }),\n },\n ],\n };\n\n const inputStyles = [\n styles.input,\n inputStyle,\n type === \"solid\" ? { marginHorizontal: 12 } : {},\n ];\n\n // const render = (props) => <NativeTextInput {...props} />;\n\n return (\n <View style={[styles.container, style]}>\n <Touchable disabled={disabled} onPress={toggleVisibility}>\n <View pointerEvents=\"none\">\n <View style={[styles.container, style]}>\n {leftIconName && leftIconMode === \"outset\" ? (\n <Icon {...leftIconProps} style={leftIconStyle} />\n ) : null}\n <View\n style={[containerStyle, style ? { height: style.height } : {}]}\n >\n {type === \"underline\" ? (\n // When type === 'flat', render an underline\n <Animated.View\n style={[\n styles.underline,\n {\n backgroundColor: focused ? activeColor : underlineColor,\n // Underlines is thinner when input is not focused\n transform: [{ scaleY: focused ? 1 : 0.5 }],\n },\n ]}\n />\n ) : null}\n\n {label ? (\n // Position colored placeholder and gray placeholder on top of each other and crossfade them\n // This gives the effect of animating the color, but allows us to use native driver\n <View\n pointerEvents=\"none\"\n style={[\n StyleSheet.absoluteFill,\n {\n opacity:\n // Hide the label in minimized state until we measure its width\n date || focused ? (labelLayout.measured ? 1 : 0) : 1,\n },\n ]}\n >\n <AnimatedText\n onLayout={(e: LayoutChangeEvent) =>\n setLabelLayout({\n width: e.nativeEvent.layout.width,\n measured: true,\n })\n }\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: colors.light,\n opacity: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0],\n }),\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n <AnimatedText\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: placeholderColor,\n opacity: hasActiveOutline ? labeled : 1,\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n </View>\n ) : null}\n\n {leftIconName && leftIconMode === \"inset\" ? (\n <Icon\n {...leftIconProps}\n style={{\n ...leftIconStyle,\n marginLeft: type === \"solid\" ? 16 : 0,\n }}\n />\n ) : null}\n\n <NativeTextInput\n value={formatDate()}\n placeholder={label ? placeholder1 : placeholder}\n editable={!disabled}\n placeholderTextColor={placeholderColor}\n selectionColor={activeColor}\n onFocus={_handleFocus}\n onBlur={_handleBlur}\n underlineColorAndroid={\"transparent\"}\n style={inputStyles}\n {...props}\n />\n </View>\n {rightIconName ? (\n <Icon\n name={rightIconName}\n size={ICON_SIZE}\n color={colors.light}\n style={{\n position: \"absolute\",\n right: 16,\n marginTop:\n type === \"solid\" ? MINIMIZED_LABEL_FONT_SIZE + 4 : 16,\n }}\n />\n ) : null}\n </View>\n </View>\n </Touchable>\n {pickerVisible && (\n <Portal>\n <View\n style={[\n styles.picker,\n {\n backgroundColor: colors.divider,\n },\n ]}\n >\n <View\n style={[\n styles.pickerContainer,\n {\n paddingTop: insets.top,\n paddingBottom: insets.bottom,\n paddingLeft: insets.left,\n paddingRight: insets.right,\n },\n ]}\n >\n {Platform.OS === \"ios\" && (\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={toggleVisibility}\n style={styles.closeButton}\n >\n Close\n </Button>\n )}\n\n <DateTimePicker\n value={getValidDate()}\n mode={mode}\n isVisible={pickerVisible}\n toggleVisibility={toggleVisibility}\n onChange={(_event: any, data: any) => {\n Platform.OS === \"ios\" ? null : toggleVisibility();\n setValue(data);\n onDateChange(data);\n }}\n />\n </View>\n </View>\n </Portal>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n picker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n underline: {\n position: \"absolute\",\n left: 0,\n right: 0,\n bottom: 0,\n height: 2,\n },\n input: {\n flexGrow: 1,\n justifyContent: \"center\",\n textAlignVertical: \"center\",\n margin: 0,\n textAlign: I18nManager.isRTL ? \"right\" : \"left\",\n },\n placeholder: {\n position: \"absolute\",\n left: 0,\n },\n pickerContainer: { flexDirection: \"column\", width: \"100%\" },\n closeButton: {\n alignSelf: \"flex-end\",\n },\n});\n\nexport default withTheme(DatePicker);\n"]}
1
+ {"version":3,"sources":["DatePicker.tsx"],"names":["AnimatedText","Animated","createAnimatedComponent","Text","FOCUS_ANIMATION_DURATION","BLUR_ANIMATION_DURATION","ICON_SIZE","MONTHS","DatePicker","Icon","style","theme","colors","typography","roundness","disabledOpacity","date","onDateChange","initialValue","defaultValue","disabled","mode","format","type","leftIconName","rightIconName","leftIconMode","label","placeholder","props","value","setValue","React","useState","pickerVisible","setPickerVisible","labeled","Value","placeholder1","setPlaceholder1","focused","setFocused","labelLayout","setLabelLayout","measured","width","previousInitialValue","useEffect","initialValueStr","toString","previousInitialValueStr","getValidDate","Date","getMonth","formatDate","newDate","toLocaleTimeString","toLocaleString","getDate","getFullYear","toggleVisibility","_handleBlur","_handleFocus","insets","_hidePlaceholder","timing","toValue","duration","useNativeDriver","start","_showPlaceholder","setTimeout","clearTimeout","MINIMIZED_LABEL_Y_OFFSET","caption","lineHeight","OUTLINE_MINIMIZED_LABEL_Y_OFFSET","MAXIMIZED_LABEL_FONT_SIZE","subtitle1","fontSize","MINIMIZED_LABEL_FONT_SIZE","hasActiveOutline","inputTextColor","activeColor","underlineColor","borderColor","placeholderColor","containerStyle","backgroundColor","inputStyle","strong","light","divider","primary","background","paddingVertical","color","paddingLeft","paddingRight","height","borderTopLeftRadius","borderTopRightRadius","paddingBottom","marginTop","borderRadius","borderWidth","paddingTop","opacity","paddingHorizontal","marginLeft","leftIconColor","leftIconProps","size","name","leftIconStyle","position","labelStyle","top","left","transform","translateY","interpolate","inputRange","outputRange","scale","translateX","inputStyles","styles","input","marginHorizontal","container","underline","scaleY","StyleSheet","absoluteFill","e","nativeEvent","layout","right","picker","pickerContainer","bottom","Platform","OS","closeButton","_event","data","create","alignSelf","flexDirection","justifyContent","flexGrow","textAlignVertical","margin","textAlign","I18nManager","isRTL"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n Animated,\n Text,\n StyleSheet,\n StyleProp,\n ViewStyle,\n TextStyle,\n Platform,\n TextInputProps,\n ImageStyle,\n I18nManager,\n LayoutChangeEvent,\n TextInput as NativeTextInput,\n} from \"react-native\";\nimport { useSafeAreaInsets } from \"react-native-safe-area-context\";\n\nimport dateFormat from \"dateformat\";\nimport { withTheme } from \"../../theming\";\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport Touchable from \"../Touchable\";\nimport DateTimePicker from \"./DatePickerComponent\";\n\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { usePrevious } from \"../../hooks\";\n\nconst AnimatedText = Animated.createAnimatedComponent(Text);\n\nconst FOCUS_ANIMATION_DURATION = 150;\nconst BLUR_ANIMATION_DURATION = 180;\nconst ICON_SIZE = 24;\n\ntype Props = {\n style?: StyleProp<ViewStyle> & { height?: number };\n theme: Theme;\n // initialDate?: string;\n // locale?: string;\n // minuteInterval?: number;\n // timeZoneOffsetInMinutes?: number;\n // error?: boolean;\n // type?: string;\n date?: Date;\n format?: string;\n onDateChange?: (data?: Date) => void;\n initialValue?: Date; // deprecated\n defaultValue?: Date;\n disabled?: boolean;\n mode?: \"date\" | \"time\" | \"datetime\";\n type?: \"solid\" | \"underline\";\n label?: string;\n placeholder?: string;\n leftIconName?: string;\n leftIconMode?: \"outset\" | \"inset\";\n rightIconName?: string;\n} & IconSlot &\n TextInputProps;\n\nconst MONTHS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst DatePicker: React.FC<Props> = ({\n Icon,\n style,\n theme: { colors, typography, roundness, disabledOpacity },\n date,\n onDateChange = () => {},\n initialValue,\n defaultValue,\n disabled = false,\n mode = \"date\",\n format,\n type = \"underline\",\n leftIconName,\n rightIconName,\n leftIconMode = \"inset\",\n label,\n placeholder,\n ...props\n}) => {\n const [value, setValue] = React.useState<any>(date || defaultValue);\n const [pickerVisible, setPickerVisible] = React.useState(false);\n const [labeled] = React.useState<Animated.Value>(\n new Animated.Value(date ? 0 : 1)\n );\n const [placeholder1, setPlaceholder1] = React.useState(\"\");\n const [focused, setFocused] = React.useState<boolean>(false);\n const [labelLayout, setLabelLayout] = React.useState<{\n measured: Boolean;\n width: number;\n }>({ measured: false, width: 0 });\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n const initialValueStr = initialValue ? initialValue.toString() : \"\";\n const previousInitialValueStr = previousInitialValue\n ? // This weirdly complains about being possibly undefined despite being inside a ternary\n // @ts-ignore\n previousInitialValue.toString()\n : \"\";\n if (initialValueStr !== previousInitialValueStr) {\n setValue(initialValue);\n onDateChange(initialValue);\n }\n }, [initialValue, previousInitialValue, setValue, onDateChange]);\n\n const getValidDate = (): Date => {\n if (!value) {\n return new Date();\n }\n return typeof value?.getMonth === \"function\" ? value : new Date();\n };\n\n const formatDate = (): string => {\n if (!value) return \"\";\n let newDate = getValidDate();\n\n if (format) return dateFormat(newDate, format);\n\n if (mode === \"time\") {\n return `${newDate.toLocaleTimeString()}`;\n }\n\n if (mode === \"datetime\") {\n return `${newDate.toLocaleString()}`;\n }\n\n return `${\n MONTHS[newDate.getMonth()]\n } ${newDate.getDate()}, ${newDate.getFullYear()}`;\n };\n\n const toggleVisibility = async () => {\n setPickerVisible(!pickerVisible);\n focused ? _handleBlur() : _handleFocus();\n };\n const insets = useSafeAreaInsets();\n\n // const _restoreLabel = () =>\n // Animated.timing(labeled, {\n // toValue: 1,\n // duration: FOCUS_ANIMATION_DURATION,\n // useNativeDriver: true,\n // }).start();\n\n // const _minmizeLabel = () =>\n // Animated.timing(labeled, {\n // toValue: 0,\n // duration: BLUR_ANIMATION_DURATION,\n // useNativeDriver: true,\n // }).start();\n\n // const _showPlaceholder = () =>\n // setTimeout(() => setPlaceholder1(placeholder || \"\"), 50);\n\n const _hidePlaceholder = () => {\n setPlaceholder1(\"\");\n };\n\n React.useEffect(() => {\n setValue(date);\n }, [date]);\n\n React.useEffect(() => {\n if (value || focused || placeholder1) {\n // _minmizeLabel();\n Animated.timing(labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n } else {\n // _restoreLabel();\n Animated.timing(labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n }\n }, [value, focused, placeholder1, labeled]);\n\n React.useEffect(() => {\n const _showPlaceholder = () =>\n setTimeout(() => setPlaceholder1(placeholder || \"\"), 50);\n if (focused || !label) {\n _showPlaceholder();\n } else {\n _hidePlaceholder();\n }\n return () => {\n clearTimeout(_showPlaceholder());\n };\n }, [focused, label, placeholder]);\n\n const _handleFocus = () => {\n if (disabled) {\n return;\n }\n\n setFocused(true);\n };\n\n const _handleBlur = () => {\n if (disabled) {\n return;\n }\n setFocused(false);\n };\n\n const MINIMIZED_LABEL_Y_OFFSET = -(typography.caption.lineHeight + 4);\n const OUTLINE_MINIMIZED_LABEL_Y_OFFSET = -(16 * 0.5 + 4);\n const MAXIMIZED_LABEL_FONT_SIZE = typography.subtitle1.fontSize;\n const MINIMIZED_LABEL_FONT_SIZE = typography.caption.fontSize;\n\n const hasActiveOutline = focused;\n\n let inputTextColor,\n activeColor,\n underlineColor,\n borderColor,\n placeholderColor,\n containerStyle: StyleProp<ViewStyle>,\n backgroundColor,\n inputStyle: StyleProp<TextStyle>;\n\n inputTextColor = colors.strong;\n if (disabled) {\n activeColor = colors.light;\n placeholderColor = colors.light;\n borderColor = \"transparent\";\n underlineColor = \"transparent\";\n backgroundColor = colors.divider;\n } else {\n activeColor = colors.primary;\n placeholderColor = borderColor = colors.light;\n underlineColor = colors.light;\n backgroundColor = colors.background;\n }\n\n const { lineHeight, ...subtitle1 } = typography.subtitle1;\n\n inputStyle = {\n paddingVertical: 0,\n color: inputTextColor,\n paddingLeft:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n paddingRight: rightIconName ? ICON_SIZE + 16 + 4 : 12,\n ...subtitle1,\n height: lineHeight,\n };\n\n if (type === \"underline\") {\n containerStyle = {\n borderTopLeftRadius: roundness,\n borderTopRightRadius: roundness,\n paddingBottom: 12,\n marginTop: 16,\n };\n } else {\n containerStyle = {\n borderRadius: roundness,\n borderColor: hasActiveOutline ? activeColor : borderColor,\n borderWidth: 1,\n paddingTop: labeled ? 16 * 1.5 : 16,\n paddingBottom: labeled ? 16 * 0.5 : 16,\n opacity: disabled ? disabledOpacity : 1,\n backgroundColor,\n };\n\n inputStyle.paddingHorizontal = 12;\n }\n\n if (leftIconName && leftIconMode === \"outset\") {\n containerStyle.marginLeft = ICON_SIZE + 8;\n }\n\n let leftIconColor;\n if (focused) {\n leftIconColor = colors.primary;\n } else {\n leftIconColor = colors.light;\n }\n\n const leftIconProps = {\n size: 24,\n color: leftIconColor,\n name: leftIconName || \"\",\n };\n\n const leftIconStyle: ImageStyle = {\n position: \"absolute\",\n marginTop:\n type === \"solid\"\n ? leftIconMode === \"inset\"\n ? MINIMIZED_LABEL_FONT_SIZE + 4\n : 16\n : leftIconMode === \"outset\"\n ? 16\n : 0,\n };\n\n const labelStyle = {\n ...typography.subtitle1,\n top: type === \"solid\" ? 16 : 0,\n left:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n transform: [\n {\n // Move label to top\n translateY: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n type === \"solid\"\n ? OUTLINE_MINIMIZED_LABEL_Y_OFFSET\n : MINIMIZED_LABEL_Y_OFFSET,\n 0,\n ],\n }),\n },\n {\n // Make label smaller\n scale: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE,\n 1,\n ],\n }),\n },\n {\n // Offset label scale since RN doesn't support transform origin\n translateX: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n -(1 - MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE) *\n (labelLayout.width / 2),\n 0,\n ],\n }),\n },\n ],\n };\n\n const inputStyles = [\n styles.input,\n inputStyle,\n type === \"solid\" ? { marginHorizontal: 12 } : {},\n ];\n\n // const render = (props) => <NativeTextInput {...props} />;\n\n return (\n <View style={[styles.container, style]}>\n <Touchable disabled={disabled} onPress={toggleVisibility}>\n <View pointerEvents=\"none\">\n <View style={[styles.container, style]}>\n {leftIconName && leftIconMode === \"outset\" ? (\n <Icon {...leftIconProps} style={leftIconStyle} />\n ) : null}\n <View\n style={[containerStyle, style ? { height: style.height } : {}]}\n >\n {type === \"underline\" ? (\n // When type === 'flat', render an underline\n <Animated.View\n style={[\n styles.underline,\n {\n backgroundColor: focused ? activeColor : underlineColor,\n // Underlines is thinner when input is not focused\n transform: [{ scaleY: focused ? 1 : 0.5 }],\n },\n ]}\n />\n ) : null}\n\n {label ? (\n // Position colored placeholder and gray placeholder on top of each other and crossfade them\n // This gives the effect of animating the color, but allows us to use native driver\n <View\n pointerEvents=\"none\"\n style={[\n StyleSheet.absoluteFill,\n {\n opacity:\n // Hide the label in minimized state until we measure its width\n date || focused ? (labelLayout.measured ? 1 : 0) : 1,\n },\n ]}\n >\n <AnimatedText\n onLayout={(e: LayoutChangeEvent) =>\n setLabelLayout({\n width: e.nativeEvent.layout.width,\n measured: true,\n })\n }\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: colors.light,\n opacity: labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0],\n }),\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n <AnimatedText\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: placeholderColor,\n opacity: hasActiveOutline ? labeled : 1,\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n </View>\n ) : null}\n\n {leftIconName && leftIconMode === \"inset\" ? (\n <Icon\n {...leftIconProps}\n style={{\n ...leftIconStyle,\n marginLeft: type === \"solid\" ? 16 : 0,\n }}\n />\n ) : null}\n\n <NativeTextInput\n value={formatDate()}\n placeholder={label ? placeholder1 : placeholder}\n editable={!disabled}\n placeholderTextColor={placeholderColor}\n selectionColor={activeColor}\n onFocus={_handleFocus}\n onBlur={_handleBlur}\n underlineColorAndroid={\"transparent\"}\n style={inputStyles}\n {...props}\n />\n </View>\n {rightIconName ? (\n <Icon\n name={rightIconName}\n size={ICON_SIZE}\n color={colors.light}\n style={{\n position: \"absolute\",\n right: 16,\n marginTop:\n type === \"solid\" ? MINIMIZED_LABEL_FONT_SIZE + 4 : 16,\n }}\n />\n ) : null}\n </View>\n </View>\n </Touchable>\n {pickerVisible && (\n <Portal>\n <View\n style={[\n styles.picker,\n {\n backgroundColor: colors.divider,\n },\n ]}\n >\n <View\n style={[\n styles.pickerContainer,\n {\n paddingTop: insets.top,\n paddingBottom: insets.bottom,\n paddingLeft: insets.left,\n paddingRight: insets.right,\n },\n ]}\n >\n {Platform.OS === \"ios\" && (\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={toggleVisibility}\n style={styles.closeButton}\n >\n Close\n </Button>\n )}\n\n <DateTimePicker\n value={getValidDate()}\n mode={mode}\n isVisible={pickerVisible}\n toggleVisibility={toggleVisibility}\n onChange={(_event: any, data: any) => {\n Platform.OS === \"ios\" ? null : toggleVisibility();\n setValue(data);\n onDateChange(data);\n }}\n />\n </View>\n </View>\n </Portal>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n picker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n underline: {\n position: \"absolute\",\n left: 0,\n right: 0,\n bottom: 0,\n height: 2,\n },\n input: {\n flexGrow: 1,\n justifyContent: \"center\",\n textAlignVertical: \"center\",\n margin: 0,\n textAlign: I18nManager.isRTL ? \"right\" : \"left\",\n },\n placeholder: {\n position: \"absolute\",\n left: 0,\n },\n pickerContainer: { flexDirection: \"column\", width: \"100%\" },\n closeButton: {\n alignSelf: \"flex-end\",\n },\n});\n\nexport default withTheme(DatePicker);\n"]}
@@ -35,7 +35,8 @@ const FieldSearchBarFull = ({
35
35
  onChange: changeOverride,
36
36
  onSubmit: submitOverride,
37
37
  value,
38
- initialValue
38
+ initialValue,
39
+ defaultValue
39
40
  }) => {
40
41
  const [focused, setIsFocused] = React.useState(false);
41
42
 
@@ -43,6 +44,10 @@ const FieldSearchBarFull = ({
43
44
  setIsFocused(false);
44
45
  };
45
46
 
47
+ const [internalValue, setIntervalValue] = React.useState(value || defaultValue);
48
+ React.useEffect(() => {
49
+ setIntervalValue(value);
50
+ }, [value]);
46
51
  const onChange = React.useCallback(text => {
47
52
  changeOverride && changeOverride(text);
48
53
  }, [changeOverride]);
@@ -66,6 +71,14 @@ const FieldSearchBarFull = ({
66
71
  ...typeStyles
67
72
  } = typography.body2; // eslint-disable-line @typescript-eslint/no-unused-vars
68
73
 
74
+ const handleChangeText = newValue => {
75
+ setIntervalValue(newValue);
76
+
77
+ if (onChange) {
78
+ onChange(newValue);
79
+ }
80
+ };
81
+
69
82
  return /*#__PURE__*/React.createElement(_reactNative.View, {
70
83
  style: [{
71
84
  padding: 16
@@ -82,10 +95,10 @@ const FieldSearchBarFull = ({
82
95
  }, /*#__PURE__*/React.createElement(_reactNative.TextInput, {
83
96
  clearButtonMode: "while-editing",
84
97
  placeholder: placeholder,
85
- value: value,
98
+ value: internalValue,
86
99
  onBlur: onBlur,
87
100
  onFocus: onFocus,
88
- onChangeText: onChange,
101
+ onChangeText: handleChangeText,
89
102
  onSubmitEditing: onSubmit,
90
103
  placeholderTextColor: colors.light,
91
104
  style: [{
@@ -1 +1 @@
1
- {"version":3,"sources":["FieldSearchBarFull.tsx"],"names":["FieldSearchBarFull","Icon","icon","placeholder","style","theme","colors","typography","onChange","changeOverride","onSubmit","submitOverride","value","initialValue","focused","setIsFocused","React","useState","onBlur","useCallback","text","previousInitialValue","useEffect","onFocus","e","lineHeight","typeStyles","body2","padding","styles","container","Config","fieldSearchBarFullIconSize","primary","light","marginLeft","flex","color","medium","StyleSheet","create","flexDirection","alignItems","SEED_DATA","name","tag","description","category","COMPONENT_TYPES","input","preview_image_url","supports_list_render","triggers","Triggers","OnChange","props","group","GROUPS","basic","label","formType","FORM_TYPES","propType","PROP_TYPES","ASSET","defaultValue","editable","required","string","STRING","action","fieldName","FIELD_NAME","layout"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n TextInput,\n StyleSheet,\n StyleProp,\n ViewStyle,\n NativeSyntheticEvent,\n TextInputSubmitEditingEventData,\n} from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport {\n GROUPS,\n COMPONENT_TYPES,\n FORM_TYPES,\n PROP_TYPES,\n FIELD_NAME,\n Triggers,\n} from \"@draftbit/types\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\nimport Config from \"./Config\";\nimport { usePrevious } from \"../hooks\";\n\ntype Props = {\n icon?: string;\n placeholder?: string;\n style?: StyleProp<ViewStyle>;\n theme: Theme;\n onChange: (text: string) => void;\n onSubmit?: (e: NativeSyntheticEvent<TextInputSubmitEditingEventData>) => void;\n value: string;\n initialValue?: string;\n} & IconSlot;\n\nconst FieldSearchBarFull: React.FC<Props> = ({\n Icon,\n icon = \"search\",\n placeholder = \"\",\n style,\n theme: { colors, typography },\n onChange: changeOverride,\n onSubmit: submitOverride,\n value,\n initialValue,\n}) => {\n const [focused, setIsFocused] = React.useState(false);\n\n const onBlur = () => {\n setIsFocused(false);\n };\n\n const onChange = React.useCallback(\n (text: string) => {\n changeOverride && changeOverride(text);\n },\n [changeOverride]\n );\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue) {\n onChange(initialValue);\n }\n }, [initialValue, previousInitialValue, onChange]);\n\n const onFocus = () => {\n setIsFocused(true);\n };\n\n const onSubmit = (\n e: NativeSyntheticEvent<TextInputSubmitEditingEventData>\n ) => {\n submitOverride && submitOverride(e);\n };\n\n const { lineHeight, ...typeStyles } = typography.body2; // eslint-disable-line @typescript-eslint/no-unused-vars\n\n return (\n <View style={[{ padding: 16 }, styles.container, style]}>\n <Icon\n name={icon}\n size={Config.fieldSearchBarFullIconSize}\n color={focused ? colors.primary : colors.light}\n />\n <View style={{ marginLeft: 12, flex: 1 }}>\n <TextInput\n clearButtonMode=\"while-editing\"\n placeholder={placeholder}\n value={value}\n onBlur={onBlur}\n onFocus={onFocus}\n onChangeText={onChange}\n onSubmitEditing={onSubmit}\n placeholderTextColor={colors.light}\n style={[\n {\n color: colors.medium,\n },\n typeStyles,\n ]}\n />\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n});\n\nexport default withTheme(FieldSearchBarFull);\n\nexport const SEED_DATA = [\n {\n name: \"Search Bar\",\n tag: \"FieldSearchBarFull\",\n description: \"A search bar with accompanying search icon and clear button.\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/Field_SearchBar_Full.png\",\n supports_list_render: false,\n triggers: [Triggers.OnChange], // TODO Triggers.OnSubmit for multiple triggers\n props: {\n icon: {\n group: GROUPS.basic,\n label: \"Icon\",\n description: \"Left icon to display\",\n formType: FORM_TYPES.icon,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n placeholder: {\n group: GROUPS.basic,\n label: \"Placeholder\",\n description: \"Input placeholder text\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"Search for...\",\n editable: true,\n required: false,\n },\n onSubmit: {\n group: GROUPS.basic,\n label: \"Submit action\",\n description: \"Action to execute on submission\",\n editable: true,\n required: false,\n formType: FORM_TYPES.action,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n },\n fieldName: {\n ...FIELD_NAME,\n defaultValue: \"searchBarValue\",\n },\n },\n layout: {},\n },\n];\n"]}
1
+ {"version":3,"sources":["FieldSearchBarFull.tsx"],"names":["FieldSearchBarFull","Icon","icon","placeholder","style","theme","colors","typography","onChange","changeOverride","onSubmit","submitOverride","value","initialValue","defaultValue","focused","setIsFocused","React","useState","onBlur","internalValue","setIntervalValue","useEffect","useCallback","text","previousInitialValue","onFocus","e","lineHeight","typeStyles","body2","handleChangeText","newValue","padding","styles","container","Config","fieldSearchBarFullIconSize","primary","light","marginLeft","flex","color","medium","StyleSheet","create","flexDirection","alignItems","SEED_DATA","name","tag","description","category","COMPONENT_TYPES","input","preview_image_url","supports_list_render","triggers","Triggers","OnChange","props","group","GROUPS","basic","label","formType","FORM_TYPES","propType","PROP_TYPES","ASSET","editable","required","string","STRING","action","fieldName","FIELD_NAME","layout"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n TextInput,\n StyleSheet,\n StyleProp,\n ViewStyle,\n NativeSyntheticEvent,\n TextInputSubmitEditingEventData,\n} from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport {\n GROUPS,\n COMPONENT_TYPES,\n FORM_TYPES,\n PROP_TYPES,\n FIELD_NAME,\n Triggers,\n} from \"@draftbit/types\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\nimport Config from \"./Config\";\nimport { usePrevious } from \"../hooks\";\n\ntype Props = {\n icon?: string;\n placeholder?: string;\n style?: StyleProp<ViewStyle>;\n theme: Theme;\n onChange?: (text: string) => void;\n onSubmit?: (e: NativeSyntheticEvent<TextInputSubmitEditingEventData>) => void;\n value?: string;\n initialValue?: string; // deprecated\n defaultValue?: string;\n} & IconSlot;\n\nconst FieldSearchBarFull: React.FC<Props> = ({\n Icon,\n icon = \"search\",\n placeholder = \"\",\n style,\n theme: { colors, typography },\n onChange: changeOverride,\n onSubmit: submitOverride,\n value,\n initialValue,\n defaultValue,\n}) => {\n const [focused, setIsFocused] = React.useState(false);\n\n const onBlur = () => {\n setIsFocused(false);\n };\n\n const [internalValue, setIntervalValue] = React.useState<string | undefined>(\n value || defaultValue\n );\n\n React.useEffect(() => {\n setIntervalValue(value);\n }, [value]);\n\n const onChange = React.useCallback(\n (text: string) => {\n changeOverride && changeOverride(text);\n },\n [changeOverride]\n );\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue) {\n onChange(initialValue);\n }\n }, [initialValue, previousInitialValue, onChange]);\n\n const onFocus = () => {\n setIsFocused(true);\n };\n\n const onSubmit = (\n e: NativeSyntheticEvent<TextInputSubmitEditingEventData>\n ) => {\n submitOverride && submitOverride(e);\n };\n\n const { lineHeight, ...typeStyles } = typography.body2; // eslint-disable-line @typescript-eslint/no-unused-vars\n\n const handleChangeText = (newValue: string) => {\n setIntervalValue(newValue);\n if (onChange) {\n onChange(newValue);\n }\n };\n\n return (\n <View style={[{ padding: 16 }, styles.container, style]}>\n <Icon\n name={icon}\n size={Config.fieldSearchBarFullIconSize}\n color={focused ? colors.primary : colors.light}\n />\n <View style={{ marginLeft: 12, flex: 1 }}>\n <TextInput\n clearButtonMode=\"while-editing\"\n placeholder={placeholder}\n value={internalValue}\n onBlur={onBlur}\n onFocus={onFocus}\n onChangeText={handleChangeText}\n onSubmitEditing={onSubmit}\n placeholderTextColor={colors.light}\n style={[\n {\n color: colors.medium,\n },\n typeStyles,\n ]}\n />\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n});\n\nexport default withTheme(FieldSearchBarFull);\n\nexport const SEED_DATA = [\n {\n name: \"Search Bar\",\n tag: \"FieldSearchBarFull\",\n description: \"A search bar with accompanying search icon and clear button.\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/Field_SearchBar_Full.png\",\n supports_list_render: false,\n triggers: [Triggers.OnChange], // TODO Triggers.OnSubmit for multiple triggers\n props: {\n icon: {\n group: GROUPS.basic,\n label: \"Icon\",\n description: \"Left icon to display\",\n formType: FORM_TYPES.icon,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n placeholder: {\n group: GROUPS.basic,\n label: \"Placeholder\",\n description: \"Input placeholder text\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"Search for...\",\n editable: true,\n required: false,\n },\n onSubmit: {\n group: GROUPS.basic,\n label: \"Submit action\",\n description: \"Action to execute on submission\",\n editable: true,\n required: false,\n formType: FORM_TYPES.action,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n },\n fieldName: {\n ...FIELD_NAME,\n defaultValue: \"searchBarValue\",\n },\n },\n layout: {},\n },\n];\n"]}
@@ -53,8 +53,13 @@ const Picker = ({
53
53
  onValueChange: onValueChangeOverride,
54
54
  value,
55
55
  initialValue,
56
+ defaultValue,
56
57
  ...props
57
58
  }) => {
59
+ const [internalValue, setIntervalValue] = React.useState(value || defaultValue);
60
+ React.useEffect(() => {
61
+ setIntervalValue(value);
62
+ }, [value]);
58
63
  const onValueChange = React.useCallback((itemValue, itemIndex) => {
59
64
  if (placeholder && itemIndex === 0) {
60
65
  return;
@@ -79,11 +84,20 @@ const Picker = ({
79
84
  value: placeholder,
80
85
  label: placeholder
81
86
  }, ...normalizedOptions] : normalizedOptions;
87
+
88
+ const handleValueChange = (newValue, itemIndex) => {
89
+ setIntervalValue(newValue);
90
+
91
+ if (onValueChange) {
92
+ onValueChange(newValue, itemIndex);
93
+ }
94
+ };
95
+
82
96
  return /*#__PURE__*/React.createElement(_PickerComponent.default, _extends({}, props, {
83
- selectedValue: String(value),
97
+ selectedValue: String(internalValue),
84
98
  placeholder: placeholder,
85
99
  options: pickerOptions,
86
- onValueChange: onValueChange
100
+ onValueChange: handleValueChange
87
101
  }));
88
102
  };
89
103
 
@@ -1 +1 @@
1
- {"version":3,"sources":["Picker.tsx"],"names":["normalizeOptions","options","length","map","option","label","value","String","Error","Picker","placeholder","onValueChange","onValueChangeOverride","initialValue","props","React","useCallback","itemValue","itemIndex","normalizedOptions","previousInitialValue","useEffect","index","findIndex","opt","pickerOptions","SEED_DATA_PROPS","group","GROUPS","data","description","formType","FORM_TYPES","string","propType","PROP_TYPES","STRING","defaultValue","editable","required","basic","placeholderTextColor","color","assistiveText","array","OBJECT","disabled","boolean","BOOLEAN","error","leftIconName","icon","ASSET","leftIconMode","flatArray","rightIconName","fieldName","FIELD_NAME","handlerPropName","SEED_DATA_TRIGGERS","Triggers","OnValueChange","SEED_DATA","name","tag","category","COMPONENT_TYPES","input","preview_image_url","supports_list_render","triggers","type","layout","uncategorized"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { withTheme } from \"../../theming\";\n//@ts-ignore\nimport PickerComponent from \"./PickerComponent\"; //unable to find file due to using .android/.web/.ios\nimport { PickerComponentProps, PickerOption } from \"./PickerTypes\";\n\nimport {\n GROUPS,\n COMPONENT_TYPES,\n FORM_TYPES,\n PROP_TYPES,\n FIELD_NAME,\n Triggers,\n} from \"@draftbit/types\";\nimport { usePrevious } from \"../../hooks\";\n\ntype Props = PickerComponentProps & {\n placeholder?: string;\n value: string;\n options: PickerOption[] | string[];\n};\n\nfunction normalizeOptions(options: Props[\"options\"]): PickerOption[] {\n if (options.length === 0) {\n return [];\n }\n\n if (typeof options[0] === \"string\") {\n return (options as string[]).map((option) => ({\n label: option,\n value: String(option),\n }));\n }\n\n if (options[0].label && options[0].value) {\n return options.map((option) => {\n return {\n label: option.label,\n value: String(option.value),\n };\n });\n }\n\n throw new Error(\n 'Picker options must be either an array of strings or array of { \"label\": string; \"value\": string; } objects.'\n );\n}\n\nconst Picker: React.FC<Props> = ({\n options = [],\n placeholder,\n onValueChange: onValueChangeOverride,\n value,\n initialValue,\n ...props\n}) => {\n const onValueChange = React.useCallback(\n (itemValue: string, itemIndex: number) => {\n if (placeholder && itemIndex === 0) {\n return;\n }\n onValueChangeOverride &&\n onValueChangeOverride(String(itemValue), itemIndex);\n },\n [placeholder, onValueChangeOverride]\n );\n\n const normalizedOptions = normalizeOptions(options);\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (String(initialValue) !== String(previousInitialValue)) {\n const index = normalizedOptions.findIndex(\n (opt) => opt.value === initialValue\n );\n\n if (index == null) {\n return;\n }\n\n onValueChange(String(initialValue), index);\n }\n }, [initialValue, previousInitialValue, normalizedOptions, onValueChange]);\n\n const pickerOptions = placeholder\n ? [{ value: placeholder, label: placeholder }, ...normalizedOptions]\n : normalizedOptions;\n\n return (\n <PickerComponent\n {...props}\n selectedValue={String(value)}\n placeholder={placeholder}\n options={pickerOptions}\n onValueChange={onValueChange}\n />\n );\n};\n\nexport default withTheme(Picker);\n\nconst SEED_DATA_PROPS = {\n label: {\n group: GROUPS.data,\n label: \"Label\",\n description: \"The label to be displayed on the picker\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: true,\n },\n placeholder: {\n group: GROUPS.basic,\n label: \"Placeholder\",\n description: \"The placeholder text of the picker\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"Select an option\",\n editable: true,\n required: false,\n },\n placeholderTextColor: {\n group: GROUPS.basic,\n label: \"Placeholder Text Color\",\n description: \"The color of the placeholder text.\",\n editable: true,\n required: false,\n defaultValue: null,\n formType: FORM_TYPES.color,\n propType: PROP_TYPES.STRING,\n },\n assistiveText: {\n group: GROUPS.basic,\n label: \"Assistive text\",\n description: \"Helper text to display below the picker\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: false,\n },\n options: {\n group: GROUPS.data,\n label: \"Options\",\n description:\n \"Array of picker options. An array of objects containing a label and value.\",\n editable: true,\n required: false,\n formType: FORM_TYPES.array,\n propType: PROP_TYPES.OBJECT,\n options: [],\n defaultValue: null,\n },\n disabled: {\n group: GROUPS.basic,\n label: \"Disabled\",\n description:\n \"Whether the picker should be disabled. Will prevent selection and show a greyed out state.\",\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: false,\n editable: true,\n required: false,\n },\n error: {\n group: GROUPS.data,\n label: \"Error\",\n description: \"Whether the picker should display the error state\",\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: false,\n editable: true,\n required: false,\n },\n leftIconName: {\n group: GROUPS.basic,\n label: \"Left icon name\",\n description: \"The icon to display on the left\",\n formType: FORM_TYPES.icon,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n leftIconMode: {\n group: GROUPS.basic,\n label: \"Left icon mode\",\n description:\n \"The mode of the icon to display on the left. 'inset' or 'outset'.\",\n formType: FORM_TYPES.flatArray,\n propType: PROP_TYPES.STRING,\n defaultValue: \"inset\",\n options: [\"inset\", \"outset\"],\n editable: true,\n required: true,\n },\n rightIconName: {\n group: GROUPS.basic,\n label: \"Right icon name\",\n description: \"The icon to display on the right\",\n formType: FORM_TYPES.icon,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n fieldName: {\n ...FIELD_NAME,\n defaultValue: \"pickerValue\",\n handlerPropName: \"onValueChange\",\n },\n};\n\nconst SEED_DATA_TRIGGERS = [Triggers.OnValueChange];\nexport const SEED_DATA = [\n {\n name: \"Picker\",\n tag: \"Picker\",\n description: \"A component used to pick a value from a set of options\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/Picker.png\",\n supports_list_render: false,\n triggers: SEED_DATA_TRIGGERS,\n props: {\n ...SEED_DATA_PROPS,\n type: {\n label: \"Appearance\",\n description: \"Type of Picker\",\n formType: FORM_TYPES.flatArray,\n propType: PROP_TYPES.STRING,\n defaultValue: \"solid\",\n options: [\"solid\", \"underline\"],\n editable: true,\n required: true,\n group: GROUPS.basic,\n },\n },\n layout: {},\n },\n {\n name: \"Picker - Underline\",\n tag: \"Picker\",\n description: \"A picker with an underline\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/Picker.png\",\n supports_list_render: false,\n triggers: SEED_DATA_TRIGGERS,\n props: {\n ...SEED_DATA_PROPS,\n type: {\n label: \"Type\",\n description: \"Type\",\n group: GROUPS.uncategorized,\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"underline\",\n editable: false,\n required: false,\n },\n },\n layout: {},\n },\n];\n"]}
1
+ {"version":3,"sources":["Picker.tsx"],"names":["normalizeOptions","options","length","map","option","label","value","String","Error","Picker","placeholder","onValueChange","onValueChangeOverride","initialValue","defaultValue","props","internalValue","setIntervalValue","React","useState","useEffect","useCallback","itemValue","itemIndex","normalizedOptions","previousInitialValue","index","findIndex","opt","pickerOptions","handleValueChange","newValue","SEED_DATA_PROPS","group","GROUPS","data","description","formType","FORM_TYPES","string","propType","PROP_TYPES","STRING","editable","required","basic","placeholderTextColor","color","assistiveText","array","OBJECT","disabled","boolean","BOOLEAN","error","leftIconName","icon","ASSET","leftIconMode","flatArray","rightIconName","fieldName","FIELD_NAME","handlerPropName","SEED_DATA_TRIGGERS","Triggers","OnValueChange","SEED_DATA","name","tag","category","COMPONENT_TYPES","input","preview_image_url","supports_list_render","triggers","type","layout","uncategorized"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { withTheme } from \"../../theming\";\n//@ts-ignore\nimport PickerComponent from \"./PickerComponent\"; //unable to find file due to using .android/.web/.ios\nimport { PickerComponentProps, PickerOption } from \"./PickerTypes\";\n\nimport {\n GROUPS,\n COMPONENT_TYPES,\n FORM_TYPES,\n PROP_TYPES,\n FIELD_NAME,\n Triggers,\n} from \"@draftbit/types\";\nimport { usePrevious } from \"../../hooks\";\n\ntype Props = PickerComponentProps & {\n placeholder?: string;\n value?: string;\n options: PickerOption[] | string[];\n};\n\nfunction normalizeOptions(options: Props[\"options\"]): PickerOption[] {\n if (options.length === 0) {\n return [];\n }\n\n if (typeof options[0] === \"string\") {\n return (options as string[]).map((option) => ({\n label: option,\n value: String(option),\n }));\n }\n\n if (options[0].label && options[0].value) {\n return options.map((option) => {\n return {\n label: option.label,\n value: String(option.value),\n };\n });\n }\n\n throw new Error(\n 'Picker options must be either an array of strings or array of { \"label\": string; \"value\": string; } objects.'\n );\n}\n\nconst Picker: React.FC<Props> = ({\n options = [],\n placeholder,\n onValueChange: onValueChangeOverride,\n value,\n initialValue,\n defaultValue,\n ...props\n}) => {\n const [internalValue, setIntervalValue] = React.useState<string | undefined>(\n value || defaultValue\n );\n\n React.useEffect(() => {\n setIntervalValue(value);\n }, [value]);\n\n const onValueChange = React.useCallback(\n (itemValue: string, itemIndex: number) => {\n if (placeholder && itemIndex === 0) {\n return;\n }\n onValueChangeOverride &&\n onValueChangeOverride(String(itemValue), itemIndex);\n },\n [placeholder, onValueChangeOverride]\n );\n\n const normalizedOptions = normalizeOptions(options);\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (String(initialValue) !== String(previousInitialValue)) {\n const index = normalizedOptions.findIndex(\n (opt) => opt.value === initialValue\n );\n\n if (index == null) {\n return;\n }\n\n onValueChange(String(initialValue), index);\n }\n }, [initialValue, previousInitialValue, normalizedOptions, onValueChange]);\n\n const pickerOptions = placeholder\n ? [{ value: placeholder, label: placeholder }, ...normalizedOptions]\n : normalizedOptions;\n\n const handleValueChange = (newValue: string, itemIndex: number) => {\n setIntervalValue(newValue);\n if (onValueChange) {\n onValueChange(newValue, itemIndex);\n }\n };\n\n return (\n <PickerComponent\n {...props}\n selectedValue={String(internalValue)}\n placeholder={placeholder}\n options={pickerOptions}\n onValueChange={handleValueChange}\n />\n );\n};\n\nexport default withTheme(Picker);\n\nconst SEED_DATA_PROPS = {\n label: {\n group: GROUPS.data,\n label: \"Label\",\n description: \"The label to be displayed on the picker\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: true,\n },\n placeholder: {\n group: GROUPS.basic,\n label: \"Placeholder\",\n description: \"The placeholder text of the picker\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"Select an option\",\n editable: true,\n required: false,\n },\n placeholderTextColor: {\n group: GROUPS.basic,\n label: \"Placeholder Text Color\",\n description: \"The color of the placeholder text.\",\n editable: true,\n required: false,\n defaultValue: null,\n formType: FORM_TYPES.color,\n propType: PROP_TYPES.STRING,\n },\n assistiveText: {\n group: GROUPS.basic,\n label: \"Assistive text\",\n description: \"Helper text to display below the picker\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: false,\n },\n options: {\n group: GROUPS.data,\n label: \"Options\",\n description:\n \"Array of picker options. An array of objects containing a label and value.\",\n editable: true,\n required: false,\n formType: FORM_TYPES.array,\n propType: PROP_TYPES.OBJECT,\n options: [],\n defaultValue: null,\n },\n disabled: {\n group: GROUPS.basic,\n label: \"Disabled\",\n description:\n \"Whether the picker should be disabled. Will prevent selection and show a greyed out state.\",\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: false,\n editable: true,\n required: false,\n },\n error: {\n group: GROUPS.data,\n label: \"Error\",\n description: \"Whether the picker should display the error state\",\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: false,\n editable: true,\n required: false,\n },\n leftIconName: {\n group: GROUPS.basic,\n label: \"Left icon name\",\n description: \"The icon to display on the left\",\n formType: FORM_TYPES.icon,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n leftIconMode: {\n group: GROUPS.basic,\n label: \"Left icon mode\",\n description:\n \"The mode of the icon to display on the left. 'inset' or 'outset'.\",\n formType: FORM_TYPES.flatArray,\n propType: PROP_TYPES.STRING,\n defaultValue: \"inset\",\n options: [\"inset\", \"outset\"],\n editable: true,\n required: true,\n },\n rightIconName: {\n group: GROUPS.basic,\n label: \"Right icon name\",\n description: \"The icon to display on the right\",\n formType: FORM_TYPES.icon,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n fieldName: {\n ...FIELD_NAME,\n defaultValue: \"pickerValue\",\n handlerPropName: \"onValueChange\",\n },\n};\n\nconst SEED_DATA_TRIGGERS = [Triggers.OnValueChange];\nexport const SEED_DATA = [\n {\n name: \"Picker\",\n tag: \"Picker\",\n description: \"A component used to pick a value from a set of options\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/Picker.png\",\n supports_list_render: false,\n triggers: SEED_DATA_TRIGGERS,\n props: {\n ...SEED_DATA_PROPS,\n type: {\n label: \"Appearance\",\n description: \"Type of Picker\",\n formType: FORM_TYPES.flatArray,\n propType: PROP_TYPES.STRING,\n defaultValue: \"solid\",\n options: [\"solid\", \"underline\"],\n editable: true,\n required: true,\n group: GROUPS.basic,\n },\n },\n layout: {},\n },\n {\n name: \"Picker - Underline\",\n tag: \"Picker\",\n description: \"A picker with an underline\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/Picker.png\",\n supports_list_render: false,\n triggers: SEED_DATA_TRIGGERS,\n props: {\n ...SEED_DATA_PROPS,\n type: {\n label: \"Type\",\n description: \"Type\",\n group: GROUPS.uncategorized,\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"underline\",\n editable: false,\n required: false,\n },\n },\n layout: {},\n },\n];\n"]}
@@ -30,10 +30,15 @@ const RadioButtonGroup = ({
30
30
  value,
31
31
  onValueChange = () => {},
32
32
  initialValue,
33
+ defaultValue,
33
34
  style,
34
35
  children,
35
36
  ...rest
36
37
  }) => {
38
+ const [internalValue, setIntervalValue] = React.useState(value || defaultValue);
39
+ React.useEffect(() => {
40
+ setIntervalValue(value);
41
+ }, [value]);
37
42
  const previousInitialValue = (0, _hooks.usePrevious)(initialValue);
38
43
  React.useEffect(() => {
39
44
  if (initialValue !== previousInitialValue) {
@@ -56,8 +61,8 @@ const RadioButtonGroup = ({
56
61
  }, style]
57
62
  }, rest), /*#__PURE__*/React.createElement(Provider, {
58
63
  value: {
59
- value,
60
- onValueChange,
64
+ value: internalValue || "",
65
+ onValueChange: setIntervalValue,
61
66
  direction
62
67
  }
63
68
  }, /*#__PURE__*/React.createElement(_reactNative.View, {
@@ -1 +1 @@
1
- {"version":3,"sources":["RadioButtonGroup.tsx"],"names":["Provider","radioButtonGroupContext","RadioButtonGroup","direction","Direction","Vertical","value","onValueChange","initialValue","style","children","rest","previousInitialValue","React","useEffect","_containerStyle","flexDirection","Horizontal","push","alignItems","minHeight","SEED_DATA","name","tag","category","COMPONENT_TYPES","input","layout","triggers","Triggers","OnValueChange","props","fieldName","handlerPropName","valuePropName","defaultValue"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAOA;;AACA;;;;;;;;AAWA,MAAM;AAAEA,EAAAA;AAAF,IAAeC,gCAArB;;AAEA,MAAMC,gBAAiD,GAAG,CAAC;AACzDC,EAAAA,SAAS,GAAGC,mBAAUC,QADmC;AAEzDC,EAAAA,KAFyD;AAGzDC,EAAAA,aAAa,GAAG,MAAM,CAAE,CAHiC;AAIzDC,EAAAA,YAJyD;AAKzDC,EAAAA,KALyD;AAMzDC,EAAAA,QANyD;AAOzD,KAAGC;AAPsD,CAAD,KAQpD;AACJ,QAAMC,oBAAoB,GAAG,wBAAYJ,YAAZ,CAA7B;AACAK,EAAAA,KAAK,CAACC,SAAN,CAAgB,MAAM;AACpB,QAAIN,YAAY,KAAKI,oBAArB,EAA2C;AACzCL,MAAAA,aAAa,CAACC,YAAD,CAAb;AACD;AACF,GAJD,EAIG,CAACA,YAAD,EAAeI,oBAAf,EAAqCL,aAArC,CAJH;AAMA,QAAMQ,eAAqC,GAAG,CAC5C;AACEC,IAAAA,aAAa,EAAEb,SAAS,KAAKC,mBAAUa,UAAxB,GAAqC,KAArC,GAA6C;AAD9D,GAD4C,CAA9C;;AAMA,MAAId,SAAS,KAAKC,mBAAUC,QAA5B,EAAsC;AACpCU,IAAAA,eAAe,CAACG,IAAhB,CAAqB;AACnBC,MAAAA,UAAU,EAAE;AADO,KAArB;AAGD;;AAED,sBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAC;AAAEC,MAAAA,SAAS,EAAE;AAAb,KAAD,EAAoBX,KAApB;AAAb,KAA6CE,IAA7C,gBACE,oBAAC,QAAD;AAAU,IAAA,KAAK,EAAE;AAAEL,MAAAA,KAAF;AAASC,MAAAA,aAAT;AAAwBJ,MAAAA;AAAxB;AAAjB,kBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEY;AAAb,KAA+BL,QAA/B,CADF,CADF,CADF;AAOD,CAnCD;;eAqCeR,gB;;AAER,MAAMmB,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,oBADiB;AAEvBC,EAAAA,GAAG,EAAE,kBAFkB;AAGvBC,EAAAA,QAAQ,EAAEC,uBAAgBC,KAHH;AAIvBC,EAAAA,MAAM,EAAE,EAJe;AAKvBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,aAAV,CALa;AAMvBC,EAAAA,KAAK,EAAE;AACL5B,IAAAA,SAAS,EAAE,iCADN;AAEL6B,IAAAA,SAAS,EAAE,gCAAoB;AAC7BC,MAAAA,eAAe,EAAE,eADY;AAE7BC,MAAAA,aAAa,EAAE,OAFc;AAG7BC,MAAAA,YAAY,EAAE;AAHe,KAApB;AAFN;AANgB,CAAlB","sourcesContent":["import * as React from \"react\";\nimport { View, StyleProp, ViewStyle } from \"react-native\";\nimport {\n COMPONENT_TYPES,\n createFieldNameProp,\n createDirectionProp,\n Triggers,\n} from \"@draftbit/types\";\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport { radioButtonGroupContext, Direction } from \"./context\";\nimport { usePrevious } from \"../../hooks\";\nexport interface RadioButtonGroupProps {\n direction?: Direction;\n style?: StyleProp<ViewStyle>;\n value: string;\n onValueChange: (value: string) => void;\n initialValue?: string;\n theme: Theme;\n children: React.ReactNode;\n}\n\nconst { Provider } = radioButtonGroupContext;\n\nconst RadioButtonGroup: React.FC<RadioButtonGroupProps> = ({\n direction = Direction.Vertical,\n value,\n onValueChange = () => {},\n initialValue,\n style,\n children,\n ...rest\n}) => {\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue) {\n onValueChange(initialValue);\n }\n }, [initialValue, previousInitialValue, onValueChange]);\n\n const _containerStyle: StyleProp<ViewStyle> = [\n {\n flexDirection: direction === Direction.Horizontal ? \"row\" : \"column\",\n },\n ];\n\n if (direction !== Direction.Vertical) {\n _containerStyle.push({\n alignItems: \"center\",\n });\n }\n\n return (\n <View style={[{ minHeight: 40 }, style]} {...rest}>\n <Provider value={{ value, onValueChange, direction }}>\n <View style={_containerStyle}>{children}</View>\n </Provider>\n </View>\n );\n};\n\nexport default RadioButtonGroup;\n\nexport const SEED_DATA = {\n name: \"Radio Button Group\",\n tag: \"RadioButtonGroup\",\n category: COMPONENT_TYPES.input,\n layout: {},\n triggers: [Triggers.OnValueChange],\n props: {\n direction: createDirectionProp(),\n fieldName: createFieldNameProp({\n handlerPropName: \"onValueChange\",\n valuePropName: \"value\",\n defaultValue: \"radioButtonGroupValue\",\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["RadioButtonGroup.tsx"],"names":["Provider","radioButtonGroupContext","RadioButtonGroup","direction","Direction","Vertical","value","onValueChange","initialValue","defaultValue","style","children","rest","internalValue","setIntervalValue","React","useState","useEffect","previousInitialValue","_containerStyle","flexDirection","Horizontal","push","alignItems","minHeight","SEED_DATA","name","tag","category","COMPONENT_TYPES","input","layout","triggers","Triggers","OnValueChange","props","fieldName","handlerPropName","valuePropName"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAOA;;AACA;;;;;;;;AAYA,MAAM;AAAEA,EAAAA;AAAF,IAAeC,gCAArB;;AAEA,MAAMC,gBAAiD,GAAG,CAAC;AACzDC,EAAAA,SAAS,GAAGC,mBAAUC,QADmC;AAEzDC,EAAAA,KAFyD;AAGzDC,EAAAA,aAAa,GAAG,MAAM,CAAE,CAHiC;AAIzDC,EAAAA,YAJyD;AAKzDC,EAAAA,YALyD;AAMzDC,EAAAA,KANyD;AAOzDC,EAAAA,QAPyD;AAQzD,KAAGC;AARsD,CAAD,KASpD;AACJ,QAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoCC,KAAK,CAACC,QAAN,CACxCV,KAAK,IAAIG,YAD+B,CAA1C;AAIAM,EAAAA,KAAK,CAACE,SAAN,CAAgB,MAAM;AACpBH,IAAAA,gBAAgB,CAACR,KAAD,CAAhB;AACD,GAFD,EAEG,CAACA,KAAD,CAFH;AAIA,QAAMY,oBAAoB,GAAG,wBAAYV,YAAZ,CAA7B;AACAO,EAAAA,KAAK,CAACE,SAAN,CAAgB,MAAM;AACpB,QAAIT,YAAY,KAAKU,oBAArB,EAA2C;AACzCX,MAAAA,aAAa,CAACC,YAAD,CAAb;AACD;AACF,GAJD,EAIG,CAACA,YAAD,EAAeU,oBAAf,EAAqCX,aAArC,CAJH;AAMA,QAAMY,eAAqC,GAAG,CAC5C;AACEC,IAAAA,aAAa,EAAEjB,SAAS,KAAKC,mBAAUiB,UAAxB,GAAqC,KAArC,GAA6C;AAD9D,GAD4C,CAA9C;;AAMA,MAAIlB,SAAS,KAAKC,mBAAUC,QAA5B,EAAsC;AACpCc,IAAAA,eAAe,CAACG,IAAhB,CAAqB;AACnBC,MAAAA,UAAU,EAAE;AADO,KAArB;AAGD;;AAED,sBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAC;AAAEC,MAAAA,SAAS,EAAE;AAAb,KAAD,EAAoBd,KAApB;AAAb,KAA6CE,IAA7C,gBACE,oBAAC,QAAD;AACE,IAAA,KAAK,EAAE;AACLN,MAAAA,KAAK,EAAEO,aAAa,IAAI,EADnB;AAELN,MAAAA,aAAa,EAAEO,gBAFV;AAGLX,MAAAA;AAHK;AADT,kBAOE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEgB;AAAb,KAA+BR,QAA/B,CAPF,CADF,CADF;AAaD,CAlDD;;eAoDeT,gB;;AAER,MAAMuB,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,oBADiB;AAEvBC,EAAAA,GAAG,EAAE,kBAFkB;AAGvBC,EAAAA,QAAQ,EAAEC,uBAAgBC,KAHH;AAIvBC,EAAAA,MAAM,EAAE,EAJe;AAKvBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,aAAV,CALa;AAMvBC,EAAAA,KAAK,EAAE;AACLhC,IAAAA,SAAS,EAAE,iCADN;AAELiC,IAAAA,SAAS,EAAE,gCAAoB;AAC7BC,MAAAA,eAAe,EAAE,eADY;AAE7BC,MAAAA,aAAa,EAAE,OAFc;AAG7B7B,MAAAA,YAAY,EAAE;AAHe,KAApB;AAFN;AANgB,CAAlB","sourcesContent":["import * as React from \"react\";\nimport { View, StyleProp, ViewStyle } from \"react-native\";\nimport {\n COMPONENT_TYPES,\n createFieldNameProp,\n createDirectionProp,\n Triggers,\n} from \"@draftbit/types\";\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport { radioButtonGroupContext, Direction } from \"./context\";\nimport { usePrevious } from \"../../hooks\";\nexport interface RadioButtonGroupProps {\n direction?: Direction;\n style?: StyleProp<ViewStyle>;\n value?: string;\n onValueChange: (value: string) => void;\n initialValue?: string; // deprecated\n defaultValue?: string;\n theme: Theme;\n children: React.ReactNode;\n}\n\nconst { Provider } = radioButtonGroupContext;\n\nconst RadioButtonGroup: React.FC<RadioButtonGroupProps> = ({\n direction = Direction.Vertical,\n value,\n onValueChange = () => {},\n initialValue,\n defaultValue,\n style,\n children,\n ...rest\n}) => {\n const [internalValue, setIntervalValue] = React.useState<string | undefined>(\n value || defaultValue\n );\n\n React.useEffect(() => {\n setIntervalValue(value);\n }, [value]);\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue) {\n onValueChange(initialValue);\n }\n }, [initialValue, previousInitialValue, onValueChange]);\n\n const _containerStyle: StyleProp<ViewStyle> = [\n {\n flexDirection: direction === Direction.Horizontal ? \"row\" : \"column\",\n },\n ];\n\n if (direction !== Direction.Vertical) {\n _containerStyle.push({\n alignItems: \"center\",\n });\n }\n\n return (\n <View style={[{ minHeight: 40 }, style]} {...rest}>\n <Provider\n value={{\n value: internalValue || \"\",\n onValueChange: setIntervalValue,\n direction,\n }}\n >\n <View style={_containerStyle}>{children}</View>\n </Provider>\n </View>\n );\n};\n\nexport default RadioButtonGroup;\n\nexport const SEED_DATA = {\n name: \"Radio Button Group\",\n tag: \"RadioButtonGroup\",\n category: COMPONENT_TYPES.input,\n layout: {},\n triggers: [Triggers.OnValueChange],\n props: {\n direction: createDirectionProp(),\n fieldName: createFieldNameProp({\n handlerPropName: \"onValueChange\",\n valuePropName: \"value\",\n defaultValue: \"radioButtonGroupValue\",\n }),\n },\n};\n"]}
@@ -59,6 +59,7 @@ function Slider({
59
59
  rightIconColor,
60
60
  value,
61
61
  initialValue,
62
+ defaultValue,
62
63
  minimumTrackTintColor,
63
64
  maximumTrackTintColor,
64
65
  thumbTintColor,
@@ -77,12 +78,22 @@ function Slider({
77
78
  onValueChange(initialValue);
78
79
  }
79
80
  }, [initialValue, previousInitialValue, onValueChange]);
81
+ const [internalValue, setIntervalValue] = React.useState(value || defaultValue);
82
+ React.useEffect(() => {
83
+ setIntervalValue(value);
84
+ }, [value]);
80
85
  const minTrackColor = minimumTrackTintColor || theme.colors.primary;
81
86
  const maxTrackColor = maximumTrackTintColor || theme.colors.light;
82
87
  const thumbColor = thumbTintColor || theme.colors.primary;
83
88
  const leftIconThemeColor = leftIconColor || theme.colors.light;
84
89
  const rightIconThemeColor = rightIconColor || theme.colors.light;
85
- const parsedValue = maybeParseValue(value);
90
+ const parsedValue = maybeParseValue(internalValue);
91
+
92
+ const handleSlidingComplete = newValue => {
93
+ setIntervalValue(newValue);
94
+ onValueChange(newValue);
95
+ };
96
+
86
97
  return /*#__PURE__*/React.createElement(_reactNative.View, _extends({
87
98
  style: [styles.container, style]
88
99
  }, rest), leftIcon ? /*#__PURE__*/React.createElement(Icon, {
@@ -98,7 +109,7 @@ function Slider({
98
109
  minimumTrackTintColor: minTrackColor,
99
110
  maximumTrackTintColor: maxTrackColor,
100
111
  thumbTintColor: thumbColor,
101
- onSlidingComplete: onValueChange,
112
+ onSlidingComplete: handleSlidingComplete,
102
113
  style: styles.slider
103
114
  }), rightIcon ? /*#__PURE__*/React.createElement(Icon, {
104
115
  color: rightIconThemeColor,