@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.
- package/lib/commonjs/components/Checkbox/Checkbox.js +13 -2
- package/lib/commonjs/components/Checkbox/Checkbox.js.map +1 -1
- package/lib/commonjs/components/DatePicker/DatePicker.js +2 -1
- package/lib/commonjs/components/DatePicker/DatePicker.js.map +1 -1
- package/lib/commonjs/components/FieldSearchBarFull.js +16 -3
- package/lib/commonjs/components/FieldSearchBarFull.js.map +1 -1
- package/lib/commonjs/components/Picker/Picker.js +16 -2
- package/lib/commonjs/components/Picker/Picker.js.map +1 -1
- package/lib/commonjs/components/RadioButton/RadioButtonGroup.js +7 -2
- package/lib/commonjs/components/RadioButton/RadioButtonGroup.js.map +1 -1
- package/lib/commonjs/components/Slider.js +13 -2
- package/lib/commonjs/components/Slider.js.map +1 -1
- package/lib/commonjs/components/StarRating.js +2 -1
- package/lib/commonjs/components/StarRating.js.map +1 -1
- package/lib/commonjs/components/Stepper.js +5 -1
- package/lib/commonjs/components/Stepper.js.map +1 -1
- package/lib/commonjs/components/Swiper/Swiper.js +1 -33
- package/lib/commonjs/components/Swiper/Swiper.js.map +1 -1
- package/lib/commonjs/components/Switch.js +3 -0
- package/lib/commonjs/components/Switch.js.map +1 -1
- package/lib/commonjs/components/TextField.js +4 -1
- package/lib/commonjs/components/TextField.js.map +1 -1
- package/lib/commonjs/components/TextInput.js +1 -1
- package/lib/commonjs/components/TextInput.js.map +1 -1
- package/lib/commonjs/components/ToggleButton.js +13 -2
- package/lib/commonjs/components/ToggleButton.js.map +1 -1
- package/lib/module/components/Checkbox/Checkbox.js +13 -2
- package/lib/module/components/Checkbox/Checkbox.js.map +1 -1
- package/lib/module/components/DatePicker/DatePicker.js +2 -1
- package/lib/module/components/DatePicker/DatePicker.js.map +1 -1
- package/lib/module/components/DatePicker/DatePickerComponent.web.js.map +1 -1
- package/lib/module/components/FieldSearchBarFull.js +16 -3
- package/lib/module/components/FieldSearchBarFull.js.map +1 -1
- package/lib/module/components/Picker/Picker.js +16 -2
- package/lib/module/components/Picker/Picker.js.map +1 -1
- package/lib/module/components/RadioButton/RadioButtonGroup.js +7 -2
- package/lib/module/components/RadioButton/RadioButtonGroup.js.map +1 -1
- package/lib/module/components/Slider.js +13 -2
- package/lib/module/components/Slider.js.map +1 -1
- package/lib/module/components/StarRating.js +2 -1
- package/lib/module/components/StarRating.js.map +1 -1
- package/lib/module/components/Stepper.js +5 -1
- package/lib/module/components/Stepper.js.map +1 -1
- package/lib/module/components/Swiper/Swiper.js +2 -34
- package/lib/module/components/Swiper/Swiper.js.map +1 -1
- package/lib/module/components/Switch.js +3 -0
- package/lib/module/components/Switch.js.map +1 -1
- package/lib/module/components/TextField.js +4 -1
- package/lib/module/components/TextField.js.map +1 -1
- package/lib/module/components/TextInput.js +1 -1
- package/lib/module/components/TextInput.js.map +1 -1
- package/lib/module/components/ToggleButton.js +13 -2
- package/lib/module/components/ToggleButton.js.map +1 -1
- package/lib/typescript/src/components/Checkbox/Checkbox.d.ts +1 -0
- package/lib/typescript/src/components/DatePicker/DatePicker.d.ts +1 -0
- package/lib/typescript/src/components/FieldSearchBarFull.d.ts +3 -2
- package/lib/typescript/src/components/Picker/Picker.d.ts +1 -1
- package/lib/typescript/src/components/Picker/PickerTypes.d.ts +2 -1
- package/lib/typescript/src/components/RadioButton/RadioButtonGroup.d.ts +2 -1
- package/lib/typescript/src/components/Slider.d.ts +4 -1
- package/lib/typescript/src/components/StarRating.d.ts +1 -0
- package/lib/typescript/src/components/Stepper.d.ts +1 -0
- package/lib/typescript/src/components/Swiper/Swiper.d.ts +1 -45
- package/lib/typescript/src/components/TextField.d.ts +1 -0
- package/lib/typescript/src/components/TextInput.d.ts +1 -1
- package/lib/typescript/src/components/ToggleButton.d.ts +1 -0
- package/package.json +2 -2
- package/src/components/Checkbox/Checkbox.js +13 -3
- package/src/components/Checkbox/Checkbox.tsx +22 -3
- package/src/components/DatePicker/DatePicker.js +2 -2
- package/src/components/DatePicker/DatePicker.tsx +4 -2
- package/src/components/FieldSearchBarFull.js +12 -2
- package/src/components/FieldSearchBarFull.tsx +22 -5
- package/src/components/Picker/Picker.js +12 -2
- package/src/components/Picker/Picker.tsx +19 -3
- package/src/components/Picker/PickerTypes.ts +3 -2
- package/src/components/RadioButton/RadioButtonGroup.js +10 -2
- package/src/components/RadioButton/RadioButtonGroup.tsx +19 -3
- package/src/components/Slider.js +11 -3
- package/src/components/Slider.tsx +18 -3
- package/src/components/StarRating.js +2 -2
- package/src/components/StarRating.tsx +5 -1
- package/src/components/Stepper.js +5 -2
- package/src/components/Stepper.tsx +10 -2
- package/src/components/Swiper/Swiper.js +2 -20
- package/src/components/Swiper/Swiper.tsx +0 -27
- package/src/components/Switch.js +3 -0
- package/src/components/Switch.tsx +5 -0
- package/src/components/TextField.js +5 -1
- package/src/components/TextField.tsx +5 -1
- package/src/components/TextInput.js +1 -1
- package/src/components/TextInput.tsx +2 -2
- package/src/components/ToggleButton.js +10 -2
- package/src/components/ToggleButton.tsx +18 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Slider.tsx"],"names":["maybeParseValue","value","undefined","maybe","Slider","Icon","leftIcon","rightIcon","leftIconColor","rightIconColor","initialValue","minimumTrackTintColor","maximumTrackTintColor","thumbTintColor","minimumValue","maximumValue","tapToSeek","step","onValueChange","style","theme","rest","previousInitialValue","React","useEffect","minTrackColor","colors","primary","maxTrackColor","light","thumbColor","leftIconThemeColor","rightIconThemeColor","parsedValue","styles","container","slider","StyleSheet","create","height","flexDirection","alignItems","flex","marginHorizontal","SEED_DATA","name","tag","description","category","COMPONENT_TYPES","input","layout","marginLeft","marginRight","triggers","Triggers","OnValueChange","props","fieldName","defaultValue","handlerPropName","valuePropName","group","GROUPS","basic","label","min","max","precision"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet, StyleProp, ViewStyle } from \"react-native\";\nimport NativeSlider from \"@react-native-community/slider\";\nimport isNumber from \"lodash.isnumber\";\nimport toNumber from \"lodash.tonumber\";\n\nimport {\n COMPONENT_TYPES,\n GROUPS,\n createNumberProp,\n createColorProp,\n createFieldNameProp,\n createIconProp,\n Triggers,\n} from \"@draftbit/types\";\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\nimport { usePrevious } from \"../hooks\";\n\nexport type Props = {\n style?: StyleProp<ViewStyle>;\n value?: number;\n initialValue?: number;\n minimumTrackTintColor: string;\n maximumTrackTintColor: string;\n leftIcon?: string;\n rightIcon?: string;\n leftIconColor?: string;\n rightIconColor?: string;\n thumbTintColor?: string;\n tapToSeek?: boolean;\n minimumValue: number;\n maximumValue: number;\n step: number;\n onValueChange?: (value: number) => void;\n theme: Theme;\n} & IconSlot;\n\nfunction maybeParseValue(value: any) {\n if (value === undefined) {\n return undefined;\n }\n\n if (isNumber(value)) {\n return value;\n }\n\n try {\n const maybe = toNumber(value);\n if (isNumber(maybe)) {\n return maybe;\n }\n } catch {\n return undefined;\n }\n\n return undefined;\n}\n\nfunction Slider({\n Icon,\n leftIcon,\n rightIcon,\n leftIconColor,\n rightIconColor,\n value,\n initialValue,\n minimumTrackTintColor,\n maximumTrackTintColor,\n thumbTintColor,\n minimumValue = 0,\n maximumValue = 100,\n tapToSeek,\n step = 1,\n onValueChange = () => {},\n style,\n theme,\n ...rest\n}: Props) {\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue) {\n onValueChange(initialValue);\n }\n }, [initialValue, previousInitialValue, onValueChange]);\n\n const minTrackColor = minimumTrackTintColor || theme.colors.primary;\n const maxTrackColor = maximumTrackTintColor || theme.colors.light;\n const thumbColor = thumbTintColor || theme.colors.primary;\n\n const leftIconThemeColor = leftIconColor || theme.colors.light;\n const rightIconThemeColor = rightIconColor || theme.colors.light;\n\n const parsedValue = maybeParseValue(value);\n\n return (\n <View style={[styles.container, style]} {...rest}>\n {leftIcon ? (\n <Icon color={leftIconThemeColor} name={leftIcon} size={24} />\n ) : null}\n <NativeSlider\n value={parsedValue}\n step={step}\n minimumValue={minimumValue}\n maximumValue={maximumValue}\n tapToSeek={tapToSeek}\n minimumTrackTintColor={minTrackColor}\n maximumTrackTintColor={maxTrackColor}\n thumbTintColor={thumbColor}\n onSlidingComplete={onValueChange}\n style={styles.slider}\n />\n {rightIcon ? (\n <Icon color={rightIconThemeColor} name={rightIcon} size={24} />\n ) : null}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n height: 40,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n slider: {\n flex: 1,\n marginHorizontal: 12,\n },\n});\n\nexport default withTheme(Slider);\n\nexport const SEED_DATA = {\n name: \"Slider\",\n tag: \"Slider\",\n description: \"A component used to set a value in a range\",\n category: COMPONENT_TYPES.input,\n layout: {\n marginLeft: 12,\n marginRight: 12,\n },\n triggers: [Triggers.OnValueChange],\n props: {\n fieldName: createFieldNameProp({\n defaultValue: \"sliderValue\",\n handlerPropName: \"onValueChange\",\n valuePropName: \"value\",\n }),\n minimumValue: createNumberProp({\n group: GROUPS.basic,\n label: \"Min Value\",\n min: 0,\n max: 1000,\n }),\n maximumValue: createNumberProp({\n group: GROUPS.basic,\n label: \"Max Value\",\n min: 1,\n max: 10000,\n }),\n step: createNumberProp({\n group: GROUPS.basic,\n label: \"Step\",\n min: 0,\n max: 100,\n step: 0.01,\n precision: 2,\n }),\n leftIcon: createIconProp({\n label: \"Left Icon\",\n defaultValue: null,\n }),\n rightIcon: createIconProp({\n label: \"Right Icon\",\n defaultValue: null,\n }),\n minimumTrackTintColor: createColorProp({\n label: \"Min Track Color\",\n defaultValue: null,\n }),\n maximumTrackTintColor: createColorProp({\n label: \"Max Track Color\",\n defaultValue: null,\n }),\n thumbTintColor: createColorProp({\n label: \"Thumb Color\",\n defaultValue: null,\n }),\n },\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["Slider.tsx"],"names":["maybeParseValue","value","undefined","maybe","Slider","Icon","leftIcon","rightIcon","leftIconColor","rightIconColor","initialValue","defaultValue","minimumTrackTintColor","maximumTrackTintColor","thumbTintColor","minimumValue","maximumValue","tapToSeek","step","onValueChange","style","theme","rest","previousInitialValue","React","useEffect","internalValue","setIntervalValue","useState","minTrackColor","colors","primary","maxTrackColor","light","thumbColor","leftIconThemeColor","rightIconThemeColor","parsedValue","handleSlidingComplete","newValue","styles","container","slider","StyleSheet","create","height","flexDirection","alignItems","flex","marginHorizontal","SEED_DATA","name","tag","description","category","COMPONENT_TYPES","input","layout","marginLeft","marginRight","triggers","Triggers","OnValueChange","props","fieldName","handlerPropName","valuePropName","group","GROUPS","basic","label","min","max","precision"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet, StyleProp, ViewStyle } from \"react-native\";\nimport NativeSlider from \"@react-native-community/slider\";\nimport isNumber from \"lodash.isnumber\";\nimport toNumber from \"lodash.tonumber\";\n\nimport {\n COMPONENT_TYPES,\n GROUPS,\n createNumberProp,\n createColorProp,\n createFieldNameProp,\n createIconProp,\n Triggers,\n} from \"@draftbit/types\";\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\nimport { usePrevious } from \"../hooks\";\n\nexport type Props = {\n style?: StyleProp<ViewStyle>;\n value?: number;\n initialValue?: number; // deprecated\n defaultValue?: number;\n minimumTrackTintColor: string;\n maximumTrackTintColor: string;\n leftIcon?: string;\n rightIcon?: string;\n leftIconColor?: string;\n rightIconColor?: string;\n thumbTintColor?: string;\n tapToSeek?: boolean;\n minimumValue: number;\n maximumValue: number;\n step: number;\n onValueChange?: (value: number) => void;\n theme: Theme;\n} & IconSlot;\n\nfunction maybeParseValue(value: any) {\n if (value === undefined) {\n return undefined;\n }\n\n if (isNumber(value)) {\n return value;\n }\n\n try {\n const maybe = toNumber(value);\n if (isNumber(maybe)) {\n return maybe;\n }\n } catch {\n return undefined;\n }\n\n return undefined;\n}\n\nfunction Slider({\n Icon,\n leftIcon,\n rightIcon,\n leftIconColor,\n rightIconColor,\n value,\n initialValue,\n defaultValue,\n minimumTrackTintColor,\n maximumTrackTintColor,\n thumbTintColor,\n minimumValue = 0,\n maximumValue = 100,\n tapToSeek,\n step = 1,\n onValueChange = () => {},\n style,\n theme,\n ...rest\n}: Props) {\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue) {\n onValueChange(initialValue);\n }\n }, [initialValue, previousInitialValue, onValueChange]);\n\n const [internalValue, setIntervalValue] = React.useState<number | undefined>(\n value || defaultValue\n );\n\n React.useEffect(() => {\n setIntervalValue(value);\n }, [value]);\n\n const minTrackColor = minimumTrackTintColor || theme.colors.primary;\n const maxTrackColor = maximumTrackTintColor || theme.colors.light;\n const thumbColor = thumbTintColor || theme.colors.primary;\n\n const leftIconThemeColor = leftIconColor || theme.colors.light;\n const rightIconThemeColor = rightIconColor || theme.colors.light;\n\n const parsedValue = maybeParseValue(internalValue);\n\n const handleSlidingComplete = (newValue: number) => {\n setIntervalValue(newValue);\n onValueChange(newValue);\n };\n\n return (\n <View style={[styles.container, style]} {...rest}>\n {leftIcon ? (\n <Icon color={leftIconThemeColor} name={leftIcon} size={24} />\n ) : null}\n <NativeSlider\n value={parsedValue}\n step={step}\n minimumValue={minimumValue}\n maximumValue={maximumValue}\n tapToSeek={tapToSeek}\n minimumTrackTintColor={minTrackColor}\n maximumTrackTintColor={maxTrackColor}\n thumbTintColor={thumbColor}\n onSlidingComplete={handleSlidingComplete}\n style={styles.slider}\n />\n {rightIcon ? (\n <Icon color={rightIconThemeColor} name={rightIcon} size={24} />\n ) : null}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n height: 40,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n slider: {\n flex: 1,\n marginHorizontal: 12,\n },\n});\n\nexport default withTheme(Slider);\n\nexport const SEED_DATA = {\n name: \"Slider\",\n tag: \"Slider\",\n description: \"A component used to set a value in a range\",\n category: COMPONENT_TYPES.input,\n layout: {\n marginLeft: 12,\n marginRight: 12,\n },\n triggers: [Triggers.OnValueChange],\n props: {\n fieldName: createFieldNameProp({\n defaultValue: \"sliderValue\",\n handlerPropName: \"onValueChange\",\n valuePropName: \"value\",\n }),\n minimumValue: createNumberProp({\n group: GROUPS.basic,\n label: \"Min Value\",\n min: 0,\n max: 1000,\n }),\n maximumValue: createNumberProp({\n group: GROUPS.basic,\n label: \"Max Value\",\n min: 1,\n max: 10000,\n }),\n step: createNumberProp({\n group: GROUPS.basic,\n label: \"Step\",\n min: 0,\n max: 100,\n step: 0.01,\n precision: 2,\n }),\n leftIcon: createIconProp({\n label: \"Left Icon\",\n defaultValue: null,\n }),\n rightIcon: createIconProp({\n label: \"Right Icon\",\n defaultValue: null,\n }),\n minimumTrackTintColor: createColorProp({\n label: \"Min Track Color\",\n defaultValue: null,\n }),\n maximumTrackTintColor: createColorProp({\n label: \"Max Track Color\",\n defaultValue: null,\n }),\n thumbTintColor: createColorProp({\n label: \"Thumb Color\",\n defaultValue: null,\n }),\n },\n};\n"]}
|
|
@@ -24,6 +24,7 @@ const StarRating = ({
|
|
|
24
24
|
starSize = 16,
|
|
25
25
|
maxStars = 5,
|
|
26
26
|
rating = 0,
|
|
27
|
+
defaultValue,
|
|
27
28
|
isEditable = false,
|
|
28
29
|
activeColor,
|
|
29
30
|
inactiveColor,
|
|
@@ -31,7 +32,7 @@ const StarRating = ({
|
|
|
31
32
|
onPress,
|
|
32
33
|
...rest
|
|
33
34
|
}) => {
|
|
34
|
-
const [localRating, setLocalRating] = React.useState(rating);
|
|
35
|
+
const [localRating, setLocalRating] = React.useState(rating || defaultValue || 0);
|
|
35
36
|
React.useEffect(() => {
|
|
36
37
|
setLocalRating(rating);
|
|
37
38
|
}, [rating]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["StarRating.tsx"],"names":["StarRating","Icon","starSize","maxStars","rating","isEditable","activeColor","inactiveColor","style","onPress","rest","localRating","setLocalRating","React","useState","useEffect","ratingHandler","useCallback","r","ratingRounded","Math","round","styles","container","Array","map","_","i","display","touchContainer","pressable","StyleSheet","create","flexDirection","alignItems","position","top","right","left","bottom","zIndex","flex","height","width","SEED_DATA","name","tag","description","category","COMPONENT_TYPES","button","triggers","Triggers","OnPress","props","label","
|
|
1
|
+
{"version":3,"sources":["StarRating.tsx"],"names":["StarRating","Icon","starSize","maxStars","rating","defaultValue","isEditable","activeColor","inactiveColor","style","onPress","rest","localRating","setLocalRating","React","useState","useEffect","ratingHandler","useCallback","r","ratingRounded","Math","round","styles","container","Array","map","_","i","display","touchContainer","pressable","StyleSheet","create","flexDirection","alignItems","position","top","right","left","bottom","zIndex","flex","height","width","SEED_DATA","name","tag","description","category","COMPONENT_TYPES","button","triggers","Triggers","OnPress","props","label","min","max","step","fieldName","handlerPropName","valuePropName","group","GROUPS","data"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n StyleProp,\n ViewStyle,\n Pressable,\n} from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\n\nimport {\n COMPONENT_TYPES,\n createStaticNumberProp,\n createFieldNameProp,\n createStaticBoolProp,\n Triggers,\n createColorProp,\n GROUPS,\n} from \"@draftbit/types\";\n\ntype Props = {\n starSize?: number;\n maxStars?: number;\n rating?: number;\n defaultValue?: number;\n isEditable?: boolean;\n activeColor?: string;\n inactiveColor?: string;\n theme: Theme;\n style?: StyleProp<ViewStyle>;\n onPress?: (newValue: number) => void;\n} & IconSlot;\n\nconst StarRating: React.FC<Props> = ({\n Icon,\n starSize = 16,\n maxStars = 5,\n rating = 0,\n defaultValue,\n isEditable = false,\n activeColor,\n inactiveColor,\n style,\n onPress,\n ...rest\n}) => {\n const [localRating, setLocalRating] = React.useState<number>(\n rating || defaultValue || 0\n );\n\n React.useEffect(() => {\n setLocalRating(rating);\n }, [rating]);\n\n const ratingHandler = React.useCallback(\n (r) => {\n setLocalRating(r);\n !!onPress && onPress(r);\n },\n [onPress]\n );\n\n const ratingRounded = Math.round(localRating * 2) / 2;\n\n return (\n <View style={[styles.container, style]} {...rest}>\n {[...Array(maxStars)].map((_, i) => (\n <View key={i} style={{ display: \"flex\" }}>\n <Icon\n name={\n ratingRounded - i === 0.5\n ? \"MaterialIcons/star-half\"\n : \"MaterialIcons/star\"\n }\n size={starSize}\n color={ratingRounded > i ? activeColor : inactiveColor}\n />\n {isEditable && (\n <View style={styles.touchContainer}>\n <Pressable\n style={styles.pressable}\n onPress={() => ratingHandler(i + 0.5)}\n />\n <Pressable\n style={styles.pressable}\n onPress={() => ratingHandler(i + 1)}\n />\n </View>\n )}\n </View>\n ))}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n touchContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n position: \"absolute\",\n top: 0,\n right: 0,\n left: 0,\n bottom: 0,\n zIndex: 1,\n },\n pressable: {\n flex: 1,\n height: \"100%\",\n width: \"50%\",\n },\n});\n\nexport default withTheme(StarRating);\n\nexport const SEED_DATA = {\n name: \"Star Rating\",\n tag: \"StarRating\",\n description: \"A star rating component\",\n category: COMPONENT_TYPES.button,\n triggers: [Triggers.OnPress],\n props: {\n starSize: createStaticNumberProp({\n label: \"Star size\",\n description: \"Size of each individual star\",\n defaultValue: 16,\n min: 8,\n max: 36,\n step: 1,\n }),\n fieldName: createFieldNameProp({\n defaultValue: \"ratingValue\", // this is the name of the variable declared on the screen in Draftbit\n handlerPropName: \"onPress\", // the change handler prop in this component\n valuePropName: \"rating\", // the value prop in this component\n }),\n maxStars: createStaticNumberProp({\n label: \"Max stars\",\n description: \"The max number of stars\",\n defaultValue: 5,\n min: 0,\n max: 10,\n step: 1,\n }),\n rating: createStaticNumberProp({\n group: GROUPS.data,\n label: \"Rating\",\n }),\n isEditable: createStaticBoolProp({\n label: \"Editable\",\n }),\n activeColor: createColorProp({\n label: \"Active Color\",\n defaultValue: \"primary\",\n }),\n inactiveColor: createColorProp({\n label: \"Inactive Color\",\n defaultValue: \"divider\",\n }),\n },\n};\n"]}
|
|
@@ -29,6 +29,7 @@ const Stepper = ({
|
|
|
29
29
|
style,
|
|
30
30
|
onChange,
|
|
31
31
|
initialValue,
|
|
32
|
+
defaultValue,
|
|
32
33
|
theme: {
|
|
33
34
|
colors,
|
|
34
35
|
typography,
|
|
@@ -39,7 +40,10 @@ const Stepper = ({
|
|
|
39
40
|
borderRadius = roundness,
|
|
40
41
|
typeStyle
|
|
41
42
|
}) => {
|
|
42
|
-
const [stateValue, setStateValue] = React.useState(value);
|
|
43
|
+
const [stateValue, setStateValue] = React.useState(value || defaultValue || 0);
|
|
44
|
+
React.useEffect(() => {
|
|
45
|
+
setStateValue(value);
|
|
46
|
+
}, [value]);
|
|
43
47
|
const previousInitialValue = (0, _hooks.usePrevious)(initialValue);
|
|
44
48
|
React.useEffect(() => {
|
|
45
49
|
if (initialValue !== previousInitialValue) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Stepper.tsx"],"names":["Stepper","Icon","value","style","onChange","initialValue","theme","colors","typography","roundness","iconSize","iconColor","strong","borderRadius","typeStyle","stateValue","setStateValue","React","useState","
|
|
1
|
+
{"version":3,"sources":["Stepper.tsx"],"names":["Stepper","Icon","value","style","onChange","initialValue","defaultValue","theme","colors","typography","roundness","iconSize","iconColor","strong","borderRadius","typeStyle","stateValue","setStateValue","React","useState","useEffect","previousInitialValue","handleMinus","handlePlus","flexDirection","body1","textAlign","alignSelf","color","medium","marginHorizontal","SEED_DATA","name","tag","description","category","COMPONENT_TYPES","input","layout","triggers","Triggers","OnChange","props","fieldName","handlerPropName","valuePropName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, Text, StyleProp, ViewStyle, TextStyle } from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport {\n COMPONENT_TYPES,\n createIconSizeProp,\n createColorProp,\n createFieldNameProp,\n Triggers,\n} from \"@draftbit/types\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\n\nimport IconButton from \"./IconButton\";\nimport { usePrevious } from \"../hooks\";\n\ntype Props = {\n value?: number;\n theme: Theme;\n style?: StyleProp<ViewStyle>;\n onChange?: (value: number) => void;\n initialValue?: number; // deprecated\n defaultValue?: number;\n iconSize?: number;\n iconColor?: string;\n borderRadius?: number;\n typeStyle?: StyleProp<TextStyle>;\n} & IconSlot;\n\nconst Stepper: React.FC<Props> = ({\n Icon,\n value = 0,\n style,\n onChange,\n initialValue,\n defaultValue,\n theme: { colors, typography, roundness },\n iconSize = 24,\n iconColor = colors.strong,\n borderRadius = roundness,\n typeStyle,\n}) => {\n const [stateValue, setStateValue] = React.useState(\n value || defaultValue || 0\n );\n\n React.useEffect(() => {\n setStateValue(value);\n }, [value]);\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue) {\n setStateValue(initialValue);\n onChange && onChange(initialValue);\n }\n }, [initialValue, previousInitialValue, onChange, setStateValue]);\n\n const handleMinus = () => {\n if (value || value === 0) {\n onChange && onChange(value - 1);\n } else {\n setStateValue(stateValue - 1);\n }\n };\n\n const handlePlus = () => {\n if (value || value === 0) {\n onChange && onChange(value + 1);\n } else {\n setStateValue(stateValue + 1);\n }\n };\n\n return (\n <View\n style={[\n { flexDirection: \"row\" },\n style,\n borderRadius ? { borderRadius } : {},\n ]}\n >\n <IconButton\n Icon={Icon}\n icon=\"MaterialIcons/remove\"\n onPress={handleMinus}\n size={iconSize}\n color={iconColor}\n disabled={value ? value === 0 : stateValue === 0}\n />\n <Text\n style={[\n typography.body1,\n {\n textAlign: \"center\",\n alignSelf: \"center\",\n color: colors.medium,\n marginHorizontal: 8,\n },\n typeStyle,\n ]}\n >\n {value || stateValue}\n </Text>\n <IconButton\n Icon={Icon}\n icon=\"MaterialIcons/add\"\n onPress={handlePlus}\n size={iconSize}\n color={iconColor}\n />\n </View>\n );\n};\n\nexport default withTheme(Stepper);\n\nexport const SEED_DATA = [\n {\n name: \"Stepper\",\n tag: \"Stepper\",\n description: \"A component used to control the quantity of something\",\n category: COMPONENT_TYPES.input,\n layout: {},\n triggers: [Triggers.OnChange],\n props: {\n fieldName: createFieldNameProp({\n defaultValue: \"stepperValue\",\n handlerPropName: \"onChange\",\n valuePropName: \"value\",\n }),\n iconSize: createIconSizeProp({ defaultValue: 24 }),\n iconColor: createColorProp({ defaultValue: \"strong\" }),\n },\n },\n];\n"]}
|
|
@@ -22,11 +22,7 @@ const Swiper = ({
|
|
|
22
22
|
from = 0,
|
|
23
23
|
prevTitle = "",
|
|
24
24
|
nextTitle = "",
|
|
25
|
-
prevTitleColor = "red",
|
|
26
|
-
nextTitleColor = "blue",
|
|
27
25
|
dotsTouchable = true,
|
|
28
|
-
dotColor,
|
|
29
|
-
dotActiveColor,
|
|
30
26
|
children,
|
|
31
27
|
style
|
|
32
28
|
}) => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
@@ -39,21 +35,7 @@ const Swiper = ({
|
|
|
39
35
|
controlsProps: {
|
|
40
36
|
prevTitle,
|
|
41
37
|
nextTitle,
|
|
42
|
-
|
|
43
|
-
color: prevTitleColor
|
|
44
|
-
},
|
|
45
|
-
nextTitleStyle: {
|
|
46
|
-
color: nextTitleColor
|
|
47
|
-
},
|
|
48
|
-
dotsTouchable,
|
|
49
|
-
dotActiveStyle: {
|
|
50
|
-
backgroundColor: dotActiveColor
|
|
51
|
-
},
|
|
52
|
-
dotProps: {
|
|
53
|
-
badgeStyle: {
|
|
54
|
-
backgroundColor: dotColor
|
|
55
|
-
}
|
|
56
|
-
}
|
|
38
|
+
dotsTouchable
|
|
57
39
|
}
|
|
58
40
|
}, children));
|
|
59
41
|
|
|
@@ -97,20 +79,6 @@ const SEED_DATA = {
|
|
|
97
79
|
label: "Next Title",
|
|
98
80
|
defaultValue: ""
|
|
99
81
|
}),
|
|
100
|
-
prevTitleColor: (0, _types.createColorProp)({
|
|
101
|
-
label: "Previous Title Color"
|
|
102
|
-
}),
|
|
103
|
-
nextTitleColor: (0, _types.createColorProp)({
|
|
104
|
-
label: "Next Title Color"
|
|
105
|
-
}),
|
|
106
|
-
dotColor: (0, _types.createColorProp)({
|
|
107
|
-
label: "Dot Color",
|
|
108
|
-
defaultValue: "#86939e"
|
|
109
|
-
}),
|
|
110
|
-
dotActiveColor: (0, _types.createColorProp)({
|
|
111
|
-
label: "Dot Active Color",
|
|
112
|
-
defaultValue: "#2089dc"
|
|
113
|
-
}),
|
|
114
82
|
dotsTouchable: (0, _types.createBoolProp)({
|
|
115
83
|
group: _types.GROUPS.basic,
|
|
116
84
|
label: "Dots Touchable",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Swiper.tsx"],"names":["Swiper","vertical","loop","timeout","from","prevTitle","nextTitle","
|
|
1
|
+
{"version":3,"sources":["Swiper.tsx"],"names":["Swiper","vertical","loop","timeout","from","prevTitle","nextTitle","dotsTouchable","children","style","SEED_DATA","name","tag","description","category","COMPONENT_TYPES","container","layout","height","width","props","group","GROUPS","basic","label","defaultValue"],"mappings":";;;;;;;AAAA;;AAOA;;AACA;;AACA;;;;AAcA,MAAMA,MAAM,GAAG,CAAC;AACdC,EAAAA,QAAQ,GAAG,KADG;AAEdC,EAAAA,IAAI,GAAG,KAFO;AAGdC,EAAAA,OAAO,GAAG,CAHI;AAIdC,EAAAA,IAAI,GAAG,CAJO;AAKdC,EAAAA,SAAS,GAAG,EALE;AAMdC,EAAAA,SAAS,GAAG,EANE;AAOdC,EAAAA,aAAa,GAAG,IAPF;AAQdC,EAAAA,QARc;AASdC,EAAAA;AATc,CAAD,kBAWb,6BAAC,iBAAD;AAAM,EAAA,KAAK,EAAEA;AAAb,gBACE,6BAAC,6BAAD;AACE,EAAA,IAAI,EAAEL,IADR;AAEE,EAAA,IAAI,EAAEF,IAFR;AAGE,EAAA,OAAO,EAAEC,OAHX;AAIE,EAAA,QAAQ,EAAEF,QAJZ;AAKE,EAAA,aAAa,EAAE;AACbI,IAAAA,SADa;AAEbC,IAAAA,SAFa;AAGbC,IAAAA;AAHa;AALjB,GAWGC,QAXH,CADF,CAXF;;eA4BeR,M;;AAER,MAAMU,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,QADiB;AAEvBC,EAAAA,GAAG,EAAE,QAFkB;AAGvBC,EAAAA,WAAW,EAAE,kBAHU;AAIvBC,EAAAA,QAAQ,EAAEC,uBAAgBC,SAJH;AAKvBC,EAAAA,MAAM,EAAE;AACNC,IAAAA,MAAM,EAAE,GADF;AAENC,IAAAA,KAAK,EAAE;AAFD,GALe;AASvBC,EAAAA,KAAK,EAAE;AACLhB,IAAAA,IAAI,EAAE,6BAAiB;AACrBiB,MAAAA,KAAK,EAAEC,cAAOC,KADO;AAErBC,MAAAA,KAAK,EAAE;AAFc,KAAjB,CADD;AAKLtB,IAAAA,IAAI,EAAE,2BAAe;AACnBmB,MAAAA,KAAK,EAAEC,cAAOC,KADK;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAAf,CALD;AASLrB,IAAAA,OAAO,EAAE,6BAAiB;AACxBkB,MAAAA,KAAK,EAAEC,cAAOC,KADU;AAExBC,MAAAA,KAAK,EAAE,SAFiB;AAGxBC,MAAAA,YAAY,EAAE;AAHU,KAAjB,CATJ;AAcLxB,IAAAA,QAAQ,EAAE,2BAAe;AACvBoB,MAAAA,KAAK,EAAEC,cAAOC,KADS;AAEvBC,MAAAA,KAAK,EAAE,UAFgB;AAGvBC,MAAAA,YAAY,EAAE;AAHS,KAAf,CAdL;AAmBLpB,IAAAA,SAAS,EAAE,2BAAe;AACxBgB,MAAAA,KAAK,EAAEC,cAAOC,KADU;AAExBC,MAAAA,KAAK,EAAE,gBAFiB;AAGxBC,MAAAA,YAAY,EAAE;AAHU,KAAf,CAnBN;AAwBLnB,IAAAA,SAAS,EAAE,2BAAe;AACxBe,MAAAA,KAAK,EAAEC,cAAOC,KADU;AAExBC,MAAAA,KAAK,EAAE,YAFiB;AAGxBC,MAAAA,YAAY,EAAE;AAHU,KAAf,CAxBN;AA6BLlB,IAAAA,aAAa,EAAE,2BAAe;AAC5Bc,MAAAA,KAAK,EAAEC,cAAOC,KADc;AAE5BC,MAAAA,KAAK,EAAE,gBAFqB;AAG5BC,MAAAA,YAAY,EAAE;AAHc,KAAf;AA7BV;AATgB,CAAlB","sourcesContent":["import {\n COMPONENT_TYPES,\n createBoolProp,\n createNumberProp,\n createTextProp,\n GROUPS,\n} from \"@draftbit/types\";\nimport React from \"react\";\nimport { View, StyleProp, ViewStyle } from \"react-native\";\nimport SwiperComponent from \"react-native-web-swiper\";\n\nexport interface SwiperProps {\n vertical?: boolean;\n loop?: boolean;\n from?: number;\n timeout?: number;\n prevTitle?: string;\n nextTitle?: string;\n dotsTouchable?: boolean;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Swiper = ({\n vertical = false,\n loop = false,\n timeout = 0,\n from = 0,\n prevTitle = \"\",\n nextTitle = \"\",\n dotsTouchable = true,\n children,\n style,\n}: SwiperProps) => (\n <View style={style}>\n <SwiperComponent\n from={from}\n loop={loop}\n timeout={timeout}\n vertical={vertical}\n controlsProps={{\n prevTitle,\n nextTitle,\n dotsTouchable,\n }}\n >\n {children}\n </SwiperComponent>\n </View>\n);\n\nexport default Swiper;\n\nexport const SEED_DATA = {\n name: \"Swiper\",\n tag: \"Swiper\",\n description: \"Swiper container\",\n category: COMPONENT_TYPES.container,\n layout: {\n height: 300,\n width: \"100%\",\n },\n props: {\n from: createNumberProp({\n group: GROUPS.basic,\n label: \"Initial Slide\",\n }),\n loop: createBoolProp({\n group: GROUPS.basic,\n label: \"Loop\",\n }),\n timeout: createNumberProp({\n group: GROUPS.basic,\n label: \"Timeout\",\n defaultValue: 0,\n }),\n vertical: createBoolProp({\n group: GROUPS.basic,\n label: \"Vertical\",\n defaultValue: false,\n }),\n prevTitle: createTextProp({\n group: GROUPS.basic,\n label: \"Previous Title\",\n defaultValue: \"\",\n }),\n nextTitle: createTextProp({\n group: GROUPS.basic,\n label: \"Next Title\",\n defaultValue: \"\",\n }),\n dotsTouchable: createBoolProp({\n group: GROUPS.basic,\n label: \"Dots Touchable\",\n defaultValue: true,\n }),\n },\n};\n"]}
|
|
@@ -44,6 +44,9 @@ function Switch({
|
|
|
44
44
|
const activeThumbThemeColor = activeThumbColor || "#FFF";
|
|
45
45
|
const inactiveThumbThemeColor = inactiveThumbColor || "#FFF";
|
|
46
46
|
const [checked, setChecked] = React.useState(value || defaultValue);
|
|
47
|
+
React.useEffect(() => {
|
|
48
|
+
setChecked(value);
|
|
49
|
+
}, [value]);
|
|
47
50
|
React.useEffect(() => {
|
|
48
51
|
if (value != null && value !== checked) {
|
|
49
52
|
setChecked(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Switch.tsx"],"names":["Switch","value","initialValue","defaultValue","disabled","onValueChange","activeTrackColor","inactiveTrackColor","activeThumbColor","inactiveThumbColor","theme","style","rest","activeTrackThemeColor","colors","primary","inactiveTrackThemeColor","activeThumbThemeColor","inactiveThumbThemeColor","checked","setChecked","React","useState","useEffect","booleanInitialValue","Boolean","previousInitialValue","false","true","bool","Row","label","direction","RowDirection","SwitchRow"],"mappings":";;;;;;;AAAA;;AACA;;AAMA;;AACA;;AACA;;AAEA;;;;;;;;;;AAeA,SAASA,MAAT,CAAgB;AACdC,EAAAA,KADc;AAEdC,EAAAA,YAFc;AAGdC,EAAAA,YAHc;AAIdC,EAAAA,QAJc;AAKdC,EAAAA,aALc;AAMdC,EAAAA,gBANc;AAOdC,EAAAA,kBAPc;AAQdC,EAAAA,gBARc;AASdC,EAAAA,kBATc;AAUdC,EAAAA,KAVc;AAWdC,EAAAA,KAXc;AAYd,KAAGC;AAZW,CAAhB,EAaU;AACR,QAAMC,qBAAqB,GAAGP,gBAAgB,IAAII,KAAK,CAACI,MAAN,CAAaC,OAA/D;AACA,QAAMC,uBAAuB,GAAGT,kBAAkB,IAAI,MAAtD;AAEA,QAAMU,qBAAqB,GAAGT,gBAAgB,IAAI,MAAlD;AACA,QAAMU,uBAAuB,GAAGT,kBAAkB,IAAI,MAAtD;AAEA,QAAM,CAACU,OAAD,EAAUC,UAAV,IAAwBC,KAAK,CAACC,QAAN,CAAerB,KAAK,IAAIE,YAAxB,CAA9B;
|
|
1
|
+
{"version":3,"sources":["Switch.tsx"],"names":["Switch","value","initialValue","defaultValue","disabled","onValueChange","activeTrackColor","inactiveTrackColor","activeThumbColor","inactiveThumbColor","theme","style","rest","activeTrackThemeColor","colors","primary","inactiveTrackThemeColor","activeThumbThemeColor","inactiveThumbThemeColor","checked","setChecked","React","useState","useEffect","booleanInitialValue","Boolean","previousInitialValue","false","true","bool","Row","label","direction","RowDirection","SwitchRow"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n Switch as NativeSwitch,\n SwitchProps,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport FormRow from \"./FormRow\";\nimport { RowDirection } from \"@draftbit/types\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport { usePrevious } from \"../hooks\";\n\ntype Props = {\n value?: boolean;\n disabled?: boolean;\n onValueChange?: (value: boolean) => void;\n initialValue?: boolean; // deprecated\n defaultValue?: boolean;\n theme: Theme;\n activeTrackColor: string;\n inactiveTrackColor: string;\n activeThumbColor: string;\n inactiveThumbColor: string;\n} & SwitchProps;\n\nfunction Switch({\n value,\n initialValue,\n defaultValue,\n disabled,\n onValueChange,\n activeTrackColor,\n inactiveTrackColor,\n activeThumbColor,\n inactiveThumbColor,\n theme,\n style,\n ...rest\n}: Props) {\n const activeTrackThemeColor = activeTrackColor || theme.colors.primary;\n const inactiveTrackThemeColor = inactiveTrackColor || \"#EEE\";\n\n const activeThumbThemeColor = activeThumbColor || \"#FFF\";\n const inactiveThumbThemeColor = inactiveThumbColor || \"#FFF\";\n\n const [checked, setChecked] = React.useState(value || defaultValue);\n\n React.useEffect(() => {\n setChecked(value);\n }, [value]);\n\n React.useEffect(() => {\n if (value != null && value !== checked) {\n setChecked(value);\n }\n }, [value, checked]);\n\n const booleanInitialValue = Boolean(initialValue);\n const previousInitialValue = usePrevious(booleanInitialValue);\n\n React.useEffect(() => {\n if (initialValue != null && booleanInitialValue !== previousInitialValue) {\n setChecked(booleanInitialValue);\n onValueChange && onValueChange(booleanInitialValue);\n }\n }, [\n initialValue,\n booleanInitialValue,\n previousInitialValue,\n setChecked,\n onValueChange,\n ]);\n\n return (\n <NativeSwitch\n value={checked}\n disabled={disabled}\n trackColor={{\n false: inactiveTrackThemeColor,\n true: activeTrackThemeColor,\n }}\n thumbColor={value ? activeThumbThemeColor : inactiveThumbThemeColor}\n // @ts-ignore react-native-web only\n activeThumbColor={activeThumbThemeColor}\n ios_backgroundColor={inactiveTrackThemeColor}\n style={style}\n onValueChange={(bool) => {\n setChecked(bool);\n onValueChange && onValueChange(bool);\n }}\n {...rest}\n />\n );\n}\n\ntype RowProps = {\n label: string;\n direction: RowDirection;\n style?: StyleProp<ViewStyle>;\n};\n\nfunction Row({\n label = \"Label\",\n direction = RowDirection.Row,\n style,\n value = false,\n disabled,\n onValueChange,\n activeTrackColor,\n inactiveTrackColor,\n activeThumbColor,\n inactiveThumbColor,\n theme,\n ...rest\n}: Props & RowProps) {\n const [checked, setChecked] = React.useState(value);\n\n React.useEffect(() => {\n if (value !== checked) {\n setChecked(value);\n }\n }, [value, checked]);\n\n return (\n <FormRow\n disabled={disabled}\n onPress={() => {\n setChecked(!checked);\n onValueChange && onValueChange(!checked);\n }}\n label={label}\n direction={direction}\n style={style}\n {...rest}\n >\n <Switch\n theme={theme}\n value={checked}\n disabled={disabled}\n onValueChange={onValueChange}\n activeTrackColor={activeTrackColor}\n inactiveTrackColor={inactiveTrackColor}\n activeThumbColor={activeThumbColor}\n inactiveThumbColor={inactiveThumbColor}\n />\n </FormRow>\n );\n}\n\nconst SwitchRow = withTheme(Row);\nexport { SwitchRow };\nexport default withTheme(Switch);\n\n/* README: SEED_DATA lives inside mappings/Switch.js since there were weird issues taking place with sourceMaps being\n * generated */\n"]}
|
|
@@ -111,7 +111,10 @@ class TextField extends React.Component {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
componentDidMount() {
|
|
114
|
-
if (this.props.
|
|
114
|
+
if (this.props.defaultValue) {
|
|
115
|
+
this._handleChangeText(this.props.defaultValue);
|
|
116
|
+
} else if (this.props.initialValue) {
|
|
117
|
+
// deprecated
|
|
115
118
|
this._handleChangeText(this.props.initialValue);
|
|
116
119
|
}
|
|
117
120
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["TextField.tsx"],"names":["AnimatedText","Animated","createAnimatedComponent","Text","FOCUS_ANIMATION_DURATION","BLUR_ANIMATION_DURATION","ICON_SIZE","TextField","React","Component","labeled","Value","props","value","error","focused","placeholder","labelLayout","measured","width","setTimeout","clearTimeout","_timer","setState","timing","state","toValue","duration","useNativeDriver","start","disabled","onChangeText","undefined","getDerivedStateFromProps","nextProps","prevState","componentDidMount","initialValue","_handleChangeText","_minmizeLabel","componentDidUpdate","prevProps","_restoreLabel","label","_showPlaceholder","_hidePlaceholder","componentWillUnmount","toggleFocus","setNativeProps","args","_root","isFocused","clear","focus","blur","render","Icon","type","leftIconName","leftIconMode","rightIconName","assistiveText","underlineColor","underlineColorProp","multiline","numberOfLines","style","theme","colors","typography","roundness","disabledOpacity","rest","MINIMIZED_LABEL_Y_OFFSET","caption","lineHeight","OUTLINE_MINIMIZED_LABEL_Y_OFFSET","MAXIMIZED_LABEL_FONT_SIZE","subtitle1","fontSize","MINIMIZED_LABEL_FONT_SIZE","hasActiveOutline","inputTextColor","activeColor","borderColor","placeholderColor","containerStyle","backgroundColor","inputStyle","strong","light","divider","primary","background","placeholderTextColor","paddingVertical","color","paddingLeft","paddingRight","height","assistiveTextLeftMargin","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","textStyles","inputStyles","styles","input","marginHorizontal","bgColor","padding","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderCol","styleProp","StyleSheet","flatten","container","underline","scaleY","absoluteFill","e","nativeEvent","layout","ref","c","onChange","editable","selectionColor","onFocus","_handleFocus","onBlur","_handleBlur","underlineColorAndroid","right","create","alignSelf","bottom","flexGrow","justifyContent","textAlignVertical","margin","textAlign","I18nManager","isRTL","SEED_DATA_PROPS","TEXT_INPUT_PROPS","group","GROUPS","data","description","formType","FORM_TYPES","string","propType","PROP_TYPES","STRING","defaultValue","required","basic","boolean","BOOLEAN","icon","ASSET","flatArray","options","fieldName","FIELD_NAME","handlerPropName","SEED_DATA_TRIGGERS","Triggers","OnChangeText","SEED_DATA","tag","category","COMPONENT_TYPES","preview_image_url","supports_list_render","triggers","secureTextEntry","uncategorized"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n Animated,\n TextInput as NativeTextInput,\n StyleSheet,\n Text,\n I18nManager,\n StyleProp,\n TextInputProps,\n NativeSyntheticEvent,\n TextInputChangeEventData,\n ViewStyle,\n TextStyle,\n LayoutChangeEvent,\n ImageStyle,\n} from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport {\n GROUPS,\n COMPONENT_TYPES,\n FORM_TYPES,\n PROP_TYPES,\n FIELD_NAME,\n TEXT_INPUT_PROPS,\n Triggers,\n createColorProp,\n createNumberProp,\n createFieldNameProp,\n} from \"@draftbit/types\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\nimport { applyStyles, extractStyles } from \"../utilities\";\n\nconst AnimatedText = Animated.createAnimatedComponent(Text);\n\nconst FOCUS_ANIMATION_DURATION = 150;\nconst BLUR_ANIMATION_DURATION = 180;\nconst ICON_SIZE = 24;\n\nexport type Props = {\n type?: \"solid\" | \"underline\";\n initialValue?: string;\n disabled?: boolean;\n label?: string;\n error?: boolean;\n leftIconName?: string;\n leftIconMode?: \"inset\" | \"outset\";\n onChangeText: (\n text: string | NativeSyntheticEvent<TextInputChangeEventData>\n ) => void;\n rightIconName?: string;\n assistiveText?: string;\n multiline?: boolean;\n numberOfLines: number;\n underlineColor?: string;\n style?: StyleProp<ViewStyle> & { height?: number };\n theme: Theme;\n render?: (\n props: TextInputProps & { ref: (c: NativeTextInput) => void }\n ) => React.ReactNode;\n} & TextInputProps &\n IconSlot;\n\ninterface State {\n labeled: Animated.Value;\n focused?: boolean;\n placeholder?: string | undefined;\n labelLayout: {\n measured: boolean;\n width: number;\n };\n value?: string;\n}\n\nclass TextField extends React.Component<Props, State> {\n static getDerivedStateFromProps(nextProps: Props, prevState: State) {\n return {\n value:\n typeof nextProps.value !== \"undefined\"\n ? nextProps.value\n : prevState.value,\n };\n }\n\n state: State = {\n labeled: new Animated.Value(this.props.value || this.props.error ? 0 : 1),\n focused: false,\n placeholder: this.props.error ? this.props.placeholder : \"\",\n labelLayout: {\n measured: false,\n width: 0,\n },\n };\n\n componentDidMount() {\n if (this.props.initialValue) {\n this._handleChangeText(this.props.initialValue);\n }\n\n if (this.props.placeholder) {\n this._minmizeLabel();\n }\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n if (\n prevState.focused !== this.state.focused ||\n prevState.value !== this.state.value\n ) {\n // The label should be minimized if the text input is focused, or has text\n // In minimized mode, the label moves up and becomes small\n if (\n this.state.value ||\n this.state.focused ||\n this.props.error ||\n this.props.placeholder\n ) {\n this._minmizeLabel();\n } else {\n this._restoreLabel();\n }\n }\n\n if (\n prevState.focused !== this.state.focused ||\n prevProps.label !== this.props.label\n ) {\n // Show placeholder text only if the input is focused, or has error, or there's no label\n // We don't show placeholder if there's a label because the label acts as placeholder\n // When focused, the label moves up, so we can show a placeholder\n if (this.state.focused || this.props.error || !this.props.label) {\n this._showPlaceholder();\n } else {\n this._hidePlaceholder();\n }\n }\n }\n\n _timer = setTimeout(() => {}, 0);\n\n componentWillUnmount() {\n clearTimeout(this._timer);\n }\n\n _showPlaceholder = () => {\n clearTimeout(this._timer);\n\n // Set the placeholder in a delay to offset the label animation\n // If we show it immediately, they'll overlap and look ugly\n this._timer = setTimeout(\n () =>\n this.setState({\n placeholder: this.props.placeholder,\n }),\n 50\n );\n };\n\n _hidePlaceholder = () =>\n this.setState({\n placeholder: \"\",\n });\n\n _restoreLabel = () =>\n Animated.timing(this.state.labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n\n _minmizeLabel = () =>\n Animated.timing(this.state.labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n\n _handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focused: true });\n };\n\n _handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focused: false });\n };\n\n _handleChangeText = (\n value: NativeSyntheticEvent<TextInputChangeEventData> | string\n ) => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ value: value as string });\n this.props.onChangeText && this.props.onChangeText(value);\n };\n\n toggleFocus() {\n this.setState((prevState: State) => ({ focused: !prevState.focused }));\n }\n\n _root: NativeTextInput | undefined = undefined;\n /**\n * @internal\n */\n setNativeProps(args: Props) {\n return this._root && this._root.setNativeProps(args);\n }\n\n isFocused() {\n return this._root && this._root.isFocused();\n }\n\n clear() {\n return this._root && this._root.clear();\n }\n\n focus() {\n return this._root && this._root.focus();\n }\n\n blur() {\n return this._root && this._root.blur();\n }\n\n render() {\n const {\n Icon,\n type = \"underline\",\n disabled = false,\n label,\n error = false,\n leftIconName,\n leftIconMode,\n rightIconName,\n assistiveText,\n underlineColor: underlineColorProp,\n multiline = false,\n numberOfLines = 4,\n style,\n theme: { colors, typography, roundness, disabledOpacity },\n render = (props) => <NativeTextInput {...props} />,\n ...rest\n } = this.props;\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 = this.state.focused || error;\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 = error ? colors.error : colors.primary;\n placeholderColor = borderColor = colors.light;\n underlineColor = underlineColorProp;\n backgroundColor = colors.background;\n }\n\n if (rest.placeholderTextColor) {\n placeholderColor = rest.placeholderTextColor;\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 + 12 + (type === \"solid\" ? 16 : 0)\n : 0,\n paddingRight: rightIconName ? ICON_SIZE + 16 + 4 : 12,\n ...subtitle1,\n };\n\n if (!multiline) {\n inputStyle.height = lineHeight;\n }\n\n let assistiveTextLeftMargin;\n if (type === \"underline\") {\n containerStyle = {\n borderTopLeftRadius: roundness,\n borderTopRightRadius: roundness,\n paddingBottom: 12,\n marginTop: 16,\n };\n\n if (leftIconName && leftIconMode === \"outset\") {\n assistiveTextLeftMargin = ICON_SIZE + 8;\n } else {\n assistiveTextLeftMargin = 0;\n }\n } else {\n containerStyle = {\n borderRadius: roundness,\n borderColor: hasActiveOutline ? activeColor : borderColor,\n borderWidth: 1,\n paddingTop: label ? 16 * 1.5 : 16,\n paddingBottom: label ? 16 * 0.5 : 16,\n opacity: disabled ? disabledOpacity : 1,\n backgroundColor,\n };\n\n if (leftIconName && leftIconMode === \"inset\") {\n assistiveTextLeftMargin = 16 + 4;\n } else if (leftIconName && leftIconMode === \"outset\") {\n assistiveTextLeftMargin = ICON_SIZE + 8 + 12;\n } else {\n assistiveTextLeftMargin = 12;\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 (error) {\n leftIconColor = colors.error;\n } else if (this.state.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 ? MINIMIZED_LABEL_FONT_SIZE + 4\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: this.state.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: this.state.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: this.state.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n -(1 - MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE) *\n (this.state.labelLayout.width / 2),\n 0,\n ],\n }),\n },\n ],\n };\n\n const { textStyles } = extractStyles(style);\n const inputStyles = applyStyles(\n [\n styles.input,\n inputStyle,\n type === \"solid\" ? { marginHorizontal: 12 } : {},\n ],\n textStyles\n );\n\n const {\n backgroundColor: bgColor,\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n borderRadius,\n borderWidth,\n borderTopWidth,\n borderRightWidth,\n borderBottomWidth,\n borderLeftWidth,\n borderColor: borderCol,\n ...styleProp\n } = StyleSheet.flatten(style || {}) as ViewStyle & { height?: number };\n\n return (\n <View style={[styles.container, styleProp]}>\n {leftIconName && leftIconMode === \"outset\" ? (\n <Icon {...leftIconProps} style={leftIconStyle} />\n ) : null}\n <View\n style={applyStyles([containerStyle], {\n height: style?.height,\n backgroundColor: bgColor,\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n borderRadius,\n borderWidth,\n borderTopWidth,\n borderRightWidth,\n borderBottomWidth,\n borderLeftWidth,\n borderColor: borderCol,\n })}\n >\n {type === \"underline\" ? (\n // When type === 'flat', render an underline\n <Animated.View\n style={[\n styles.underline,\n {\n backgroundColor:\n bgColor ||\n (error\n ? colors.error\n : this.state.focused\n ? activeColor\n : underlineColor),\n // Underlines is thinner when input is not focused\n transform: [{ scaleY: this.state.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 this.state.value || this.state.focused\n ? this.state.labelLayout.measured\n ? 1\n : 0\n : 1,\n },\n ]}\n >\n <AnimatedText\n onLayout={(e: LayoutChangeEvent) =>\n this.setState({\n labelLayout: {\n width: e.nativeEvent.layout.width,\n measured: true,\n },\n })\n }\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: placeholderColor,\n opacity: this.state.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 ? this.state.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 {render({\n ref: (c: NativeTextInput) => {\n this._root = c;\n },\n onChange: this._handleChangeText,\n placeholder: label\n ? this.state.placeholder\n : this.props.placeholder,\n placeholderTextColor: placeholderColor,\n editable: !disabled,\n selectionColor: activeColor,\n multiline,\n numberOfLines,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n underlineColorAndroid: \"transparent\",\n style: inputStyles,\n ...rest,\n value: this.state.value,\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: type === \"solid\" ? MINIMIZED_LABEL_FONT_SIZE + 4 : 16,\n }}\n />\n ) : null}\n\n {assistiveText ? (\n <Text\n style={[\n {\n color: error ? colors.error : colors.light,\n marginTop: 8,\n marginLeft: assistiveTextLeftMargin,\n },\n ]}\n >\n {assistiveText}\n </Text>\n ) : null}\n </View>\n );\n }\n}\n\nexport default withTheme(TextField);\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n placeholder: {\n position: \"absolute\",\n left: 0,\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});\n\nconst SEED_DATA_PROPS = {\n ...TEXT_INPUT_PROPS,\n label: {\n group: GROUPS.data,\n label: \"Label\",\n description: \"The label to be displayed on the text field\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: true,\n },\n assistiveText: {\n group: GROUPS.basic,\n label: \"Assistive text\",\n description: \"Helper text to display below the input\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: false,\n },\n error: {\n group: GROUPS.data,\n label: \"Error\",\n description: \"Whether the input should display the error state\",\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: null,\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: null /* 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 handlerPropName: \"onChangeText\",\n defaultValue: \"textFieldValue\",\n },\n};\n\nconst SEED_DATA_TRIGGERS = [Triggers.OnChangeText];\nexport const SEED_DATA = [\n {\n name: \"Styled Text Field\",\n tag: \"TextField\",\n description: \"A text input with a solid border or underline\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/Textfield.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 Datepicker\",\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 underlineColor: createColorProp({\n label: \"Underline Color\",\n defaultValue: \"light\",\n }),\n secureTextEntry: {\n group: GROUPS.basic,\n label: \"Password field\",\n description:\n \"If true, this turns the field into a password field, hiding the text\",\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: null,\n editable: true,\n required: false,\n },\n },\n layout: {},\n },\n {\n name: \"Styled Text Area\",\n tag: \"TextField\",\n description: \"A text area with a solid border or underline\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/TextArea.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 Datepicker\",\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 multiline: {\n label: \"Multiline\",\n description: \"Multiline\",\n group: GROUPS.uncategorized,\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: true,\n editable: false,\n required: false,\n },\n numberOfLines: createNumberProp({\n label: \"Number of Lines\",\n description: \"Number of Lines for Multiline Field\",\n defaultValue: 4,\n group: GROUPS.basic,\n }),\n fieldName: createFieldNameProp({\n defaultValue: \"textAreaValue\",\n }),\n },\n layout: {},\n },\n];\n"]}
|
|
1
|
+
{"version":3,"sources":["TextField.tsx"],"names":["AnimatedText","Animated","createAnimatedComponent","Text","FOCUS_ANIMATION_DURATION","BLUR_ANIMATION_DURATION","ICON_SIZE","TextField","React","Component","labeled","Value","props","value","error","focused","placeholder","labelLayout","measured","width","setTimeout","clearTimeout","_timer","setState","timing","state","toValue","duration","useNativeDriver","start","disabled","onChangeText","undefined","getDerivedStateFromProps","nextProps","prevState","componentDidMount","defaultValue","_handleChangeText","initialValue","_minmizeLabel","componentDidUpdate","prevProps","_restoreLabel","label","_showPlaceholder","_hidePlaceholder","componentWillUnmount","toggleFocus","setNativeProps","args","_root","isFocused","clear","focus","blur","render","Icon","type","leftIconName","leftIconMode","rightIconName","assistiveText","underlineColor","underlineColorProp","multiline","numberOfLines","style","theme","colors","typography","roundness","disabledOpacity","rest","MINIMIZED_LABEL_Y_OFFSET","caption","lineHeight","OUTLINE_MINIMIZED_LABEL_Y_OFFSET","MAXIMIZED_LABEL_FONT_SIZE","subtitle1","fontSize","MINIMIZED_LABEL_FONT_SIZE","hasActiveOutline","inputTextColor","activeColor","borderColor","placeholderColor","containerStyle","backgroundColor","inputStyle","strong","light","divider","primary","background","placeholderTextColor","paddingVertical","color","paddingLeft","paddingRight","height","assistiveTextLeftMargin","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","textStyles","inputStyles","styles","input","marginHorizontal","bgColor","padding","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderCol","styleProp","StyleSheet","flatten","container","underline","scaleY","absoluteFill","e","nativeEvent","layout","ref","c","onChange","editable","selectionColor","onFocus","_handleFocus","onBlur","_handleBlur","underlineColorAndroid","right","create","alignSelf","bottom","flexGrow","justifyContent","textAlignVertical","margin","textAlign","I18nManager","isRTL","SEED_DATA_PROPS","TEXT_INPUT_PROPS","group","GROUPS","data","description","formType","FORM_TYPES","string","propType","PROP_TYPES","STRING","required","basic","boolean","BOOLEAN","icon","ASSET","flatArray","options","fieldName","FIELD_NAME","handlerPropName","SEED_DATA_TRIGGERS","Triggers","OnChangeText","SEED_DATA","tag","category","COMPONENT_TYPES","preview_image_url","supports_list_render","triggers","secureTextEntry","uncategorized"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n Animated,\n TextInput as NativeTextInput,\n StyleSheet,\n Text,\n I18nManager,\n StyleProp,\n TextInputProps,\n NativeSyntheticEvent,\n TextInputChangeEventData,\n ViewStyle,\n TextStyle,\n LayoutChangeEvent,\n ImageStyle,\n} from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport {\n GROUPS,\n COMPONENT_TYPES,\n FORM_TYPES,\n PROP_TYPES,\n FIELD_NAME,\n TEXT_INPUT_PROPS,\n Triggers,\n createColorProp,\n createNumberProp,\n createFieldNameProp,\n} from \"@draftbit/types\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\nimport { applyStyles, extractStyles } from \"../utilities\";\n\nconst AnimatedText = Animated.createAnimatedComponent(Text);\n\nconst FOCUS_ANIMATION_DURATION = 150;\nconst BLUR_ANIMATION_DURATION = 180;\nconst ICON_SIZE = 24;\n\nexport type Props = {\n type?: \"solid\" | \"underline\";\n initialValue?: string;\n defaultValue?: string;\n disabled?: boolean;\n label?: string;\n error?: boolean;\n leftIconName?: string;\n leftIconMode?: \"inset\" | \"outset\";\n onChangeText: (\n text: string | NativeSyntheticEvent<TextInputChangeEventData>\n ) => void;\n rightIconName?: string;\n assistiveText?: string;\n multiline?: boolean;\n numberOfLines: number;\n underlineColor?: string;\n style?: StyleProp<ViewStyle> & { height?: number };\n theme: Theme;\n render?: (\n props: TextInputProps & { ref: (c: NativeTextInput) => void }\n ) => React.ReactNode;\n} & TextInputProps &\n IconSlot;\n\ninterface State {\n labeled: Animated.Value;\n focused?: boolean;\n placeholder?: string | undefined;\n labelLayout: {\n measured: boolean;\n width: number;\n };\n value?: string;\n}\n\nclass TextField extends React.Component<Props, State> {\n static getDerivedStateFromProps(nextProps: Props, prevState: State) {\n return {\n value:\n typeof nextProps.value !== \"undefined\"\n ? nextProps.value\n : prevState.value,\n };\n }\n\n state: State = {\n labeled: new Animated.Value(this.props.value || this.props.error ? 0 : 1),\n focused: false,\n placeholder: this.props.error ? this.props.placeholder : \"\",\n labelLayout: {\n measured: false,\n width: 0,\n },\n };\n\n componentDidMount() {\n if (this.props.defaultValue) {\n this._handleChangeText(this.props.defaultValue);\n } else if (this.props.initialValue) {\n // deprecated\n this._handleChangeText(this.props.initialValue);\n }\n\n if (this.props.placeholder) {\n this._minmizeLabel();\n }\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n if (\n prevState.focused !== this.state.focused ||\n prevState.value !== this.state.value\n ) {\n // The label should be minimized if the text input is focused, or has text\n // In minimized mode, the label moves up and becomes small\n if (\n this.state.value ||\n this.state.focused ||\n this.props.error ||\n this.props.placeholder\n ) {\n this._minmizeLabel();\n } else {\n this._restoreLabel();\n }\n }\n\n if (\n prevState.focused !== this.state.focused ||\n prevProps.label !== this.props.label\n ) {\n // Show placeholder text only if the input is focused, or has error, or there's no label\n // We don't show placeholder if there's a label because the label acts as placeholder\n // When focused, the label moves up, so we can show a placeholder\n if (this.state.focused || this.props.error || !this.props.label) {\n this._showPlaceholder();\n } else {\n this._hidePlaceholder();\n }\n }\n }\n\n _timer = setTimeout(() => {}, 0);\n\n componentWillUnmount() {\n clearTimeout(this._timer);\n }\n\n _showPlaceholder = () => {\n clearTimeout(this._timer);\n\n // Set the placeholder in a delay to offset the label animation\n // If we show it immediately, they'll overlap and look ugly\n this._timer = setTimeout(\n () =>\n this.setState({\n placeholder: this.props.placeholder,\n }),\n 50\n );\n };\n\n _hidePlaceholder = () =>\n this.setState({\n placeholder: \"\",\n });\n\n _restoreLabel = () =>\n Animated.timing(this.state.labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n\n _minmizeLabel = () =>\n Animated.timing(this.state.labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n\n _handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focused: true });\n };\n\n _handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focused: false });\n };\n\n _handleChangeText = (\n value: NativeSyntheticEvent<TextInputChangeEventData> | string\n ) => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ value: value as string });\n this.props.onChangeText && this.props.onChangeText(value);\n };\n\n toggleFocus() {\n this.setState((prevState: State) => ({ focused: !prevState.focused }));\n }\n\n _root: NativeTextInput | undefined = undefined;\n /**\n * @internal\n */\n setNativeProps(args: Props) {\n return this._root && this._root.setNativeProps(args);\n }\n\n isFocused() {\n return this._root && this._root.isFocused();\n }\n\n clear() {\n return this._root && this._root.clear();\n }\n\n focus() {\n return this._root && this._root.focus();\n }\n\n blur() {\n return this._root && this._root.blur();\n }\n\n render() {\n const {\n Icon,\n type = \"underline\",\n disabled = false,\n label,\n error = false,\n leftIconName,\n leftIconMode,\n rightIconName,\n assistiveText,\n underlineColor: underlineColorProp,\n multiline = false,\n numberOfLines = 4,\n style,\n theme: { colors, typography, roundness, disabledOpacity },\n render = (props) => <NativeTextInput {...props} />,\n ...rest\n } = this.props;\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 = this.state.focused || error;\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 = error ? colors.error : colors.primary;\n placeholderColor = borderColor = colors.light;\n underlineColor = underlineColorProp;\n backgroundColor = colors.background;\n }\n\n if (rest.placeholderTextColor) {\n placeholderColor = rest.placeholderTextColor;\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 + 12 + (type === \"solid\" ? 16 : 0)\n : 0,\n paddingRight: rightIconName ? ICON_SIZE + 16 + 4 : 12,\n ...subtitle1,\n };\n\n if (!multiline) {\n inputStyle.height = lineHeight;\n }\n\n let assistiveTextLeftMargin;\n if (type === \"underline\") {\n containerStyle = {\n borderTopLeftRadius: roundness,\n borderTopRightRadius: roundness,\n paddingBottom: 12,\n marginTop: 16,\n };\n\n if (leftIconName && leftIconMode === \"outset\") {\n assistiveTextLeftMargin = ICON_SIZE + 8;\n } else {\n assistiveTextLeftMargin = 0;\n }\n } else {\n containerStyle = {\n borderRadius: roundness,\n borderColor: hasActiveOutline ? activeColor : borderColor,\n borderWidth: 1,\n paddingTop: label ? 16 * 1.5 : 16,\n paddingBottom: label ? 16 * 0.5 : 16,\n opacity: disabled ? disabledOpacity : 1,\n backgroundColor,\n };\n\n if (leftIconName && leftIconMode === \"inset\") {\n assistiveTextLeftMargin = 16 + 4;\n } else if (leftIconName && leftIconMode === \"outset\") {\n assistiveTextLeftMargin = ICON_SIZE + 8 + 12;\n } else {\n assistiveTextLeftMargin = 12;\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 (error) {\n leftIconColor = colors.error;\n } else if (this.state.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 ? MINIMIZED_LABEL_FONT_SIZE + 4\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: this.state.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: this.state.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: this.state.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n -(1 - MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE) *\n (this.state.labelLayout.width / 2),\n 0,\n ],\n }),\n },\n ],\n };\n\n const { textStyles } = extractStyles(style);\n const inputStyles = applyStyles(\n [\n styles.input,\n inputStyle,\n type === \"solid\" ? { marginHorizontal: 12 } : {},\n ],\n textStyles\n );\n\n const {\n backgroundColor: bgColor,\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n borderRadius,\n borderWidth,\n borderTopWidth,\n borderRightWidth,\n borderBottomWidth,\n borderLeftWidth,\n borderColor: borderCol,\n ...styleProp\n } = StyleSheet.flatten(style || {}) as ViewStyle & { height?: number };\n\n return (\n <View style={[styles.container, styleProp]}>\n {leftIconName && leftIconMode === \"outset\" ? (\n <Icon {...leftIconProps} style={leftIconStyle} />\n ) : null}\n <View\n style={applyStyles([containerStyle], {\n height: style?.height,\n backgroundColor: bgColor,\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n borderRadius,\n borderWidth,\n borderTopWidth,\n borderRightWidth,\n borderBottomWidth,\n borderLeftWidth,\n borderColor: borderCol,\n })}\n >\n {type === \"underline\" ? (\n // When type === 'flat', render an underline\n <Animated.View\n style={[\n styles.underline,\n {\n backgroundColor:\n bgColor ||\n (error\n ? colors.error\n : this.state.focused\n ? activeColor\n : underlineColor),\n // Underlines is thinner when input is not focused\n transform: [{ scaleY: this.state.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 this.state.value || this.state.focused\n ? this.state.labelLayout.measured\n ? 1\n : 0\n : 1,\n },\n ]}\n >\n <AnimatedText\n onLayout={(e: LayoutChangeEvent) =>\n this.setState({\n labelLayout: {\n width: e.nativeEvent.layout.width,\n measured: true,\n },\n })\n }\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: placeholderColor,\n opacity: this.state.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 ? this.state.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 {render({\n ref: (c: NativeTextInput) => {\n this._root = c;\n },\n onChange: this._handleChangeText,\n placeholder: label\n ? this.state.placeholder\n : this.props.placeholder,\n placeholderTextColor: placeholderColor,\n editable: !disabled,\n selectionColor: activeColor,\n multiline,\n numberOfLines,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n underlineColorAndroid: \"transparent\",\n style: inputStyles,\n ...rest,\n value: this.state.value,\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: type === \"solid\" ? MINIMIZED_LABEL_FONT_SIZE + 4 : 16,\n }}\n />\n ) : null}\n\n {assistiveText ? (\n <Text\n style={[\n {\n color: error ? colors.error : colors.light,\n marginTop: 8,\n marginLeft: assistiveTextLeftMargin,\n },\n ]}\n >\n {assistiveText}\n </Text>\n ) : null}\n </View>\n );\n }\n}\n\nexport default withTheme(TextField);\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n placeholder: {\n position: \"absolute\",\n left: 0,\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});\n\nconst SEED_DATA_PROPS = {\n ...TEXT_INPUT_PROPS,\n label: {\n group: GROUPS.data,\n label: \"Label\",\n description: \"The label to be displayed on the text field\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: true,\n },\n assistiveText: {\n group: GROUPS.basic,\n label: \"Assistive text\",\n description: \"Helper text to display below the input\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: false,\n },\n error: {\n group: GROUPS.data,\n label: \"Error\",\n description: \"Whether the input should display the error state\",\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: null,\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: null /* 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 handlerPropName: \"onChangeText\",\n defaultValue: \"textFieldValue\",\n },\n};\n\nconst SEED_DATA_TRIGGERS = [Triggers.OnChangeText];\nexport const SEED_DATA = [\n {\n name: \"Styled Text Field\",\n tag: \"TextField\",\n description: \"A text input with a solid border or underline\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/Textfield.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 Datepicker\",\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 underlineColor: createColorProp({\n label: \"Underline Color\",\n defaultValue: \"light\",\n }),\n secureTextEntry: {\n group: GROUPS.basic,\n label: \"Password field\",\n description:\n \"If true, this turns the field into a password field, hiding the text\",\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: null,\n editable: true,\n required: false,\n },\n },\n layout: {},\n },\n {\n name: \"Styled Text Area\",\n tag: \"TextField\",\n description: \"A text area with a solid border or underline\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/TextArea.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 Datepicker\",\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 multiline: {\n label: \"Multiline\",\n description: \"Multiline\",\n group: GROUPS.uncategorized,\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: true,\n editable: false,\n required: false,\n },\n numberOfLines: createNumberProp({\n label: \"Number of Lines\",\n description: \"Number of Lines for Multiline Field\",\n defaultValue: 4,\n group: GROUPS.basic,\n }),\n fieldName: createFieldNameProp({\n defaultValue: \"textAreaValue\",\n }),\n },\n layout: {},\n },\n];\n"]}
|
|
@@ -23,7 +23,7 @@ const TextInput = ({
|
|
|
23
23
|
const previousInitialValue = (0, _hooks.usePrevious)(initialValue);
|
|
24
24
|
|
|
25
25
|
_react.default.useEffect(() => {
|
|
26
|
-
if (initialValue !== previousInitialValue) {
|
|
26
|
+
if (initialValue !== previousInitialValue && onChangeText) {
|
|
27
27
|
onChangeText(initialValue);
|
|
28
28
|
}
|
|
29
29
|
}, [initialValue, previousInitialValue, onChangeText]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["TextInput.tsx"],"names":["TextInput","initialValue","onChangeText","props","previousInitialValue","React","useEffect"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAOA,MAAMA,SAA0B,GAAG,CAAC;AAClCC,EAAAA,YADkC;AAElCC,EAAAA,YAFkC;AAGlC,KAAGC;AAH+B,CAAD,KAI7B;AACJ,QAAMC,oBAAoB,GAAG,wBAAYH,YAAZ,CAA7B;;AACAI,iBAAMC,SAAN,CAAgB,MAAM;AACpB,QAAIL,YAAY,KAAKG,
|
|
1
|
+
{"version":3,"sources":["TextInput.tsx"],"names":["TextInput","initialValue","onChangeText","props","previousInitialValue","React","useEffect"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAOA,MAAMA,SAA0B,GAAG,CAAC;AAClCC,EAAAA,YADkC;AAElCC,EAAAA,YAFkC;AAGlC,KAAGC;AAH+B,CAAD,KAI7B;AACJ,QAAMC,oBAAoB,GAAG,wBAAYH,YAAZ,CAA7B;;AACAI,iBAAMC,SAAN,CAAgB,MAAM;AACpB,QAAIL,YAAY,KAAKG,oBAAjB,IAAyCF,YAA7C,EAA2D;AACzDA,MAAAA,YAAY,CAACD,YAAD,CAAZ;AACD;AACF,GAJD,EAIG,CAACA,YAAD,EAAeG,oBAAf,EAAqCF,YAArC,CAJH;;AAMA,sBAAO,6BAAC,sBAAD;AAAiB,IAAA,YAAY,EAAEA;AAA/B,KAAiDC,KAAjD,EAAP;AACD,CAbD;;eAeeH,S","sourcesContent":["import React from \"react\";\nimport { TextInput as NativeTextInput } from \"react-native\";\nimport { usePrevious } from \"../hooks\";\n\ninterface Props {\n initialValue?: string;\n onChangeText?: (value?: string) => void;\n}\n\nconst TextInput: React.FC<Props> = ({\n initialValue,\n onChangeText,\n ...props\n}) => {\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue && onChangeText) {\n onChangeText(initialValue);\n }\n }, [initialValue, previousInitialValue, onChangeText]);\n\n return <NativeTextInput onChangeText={onChangeText} {...props} />;\n};\n\nexport default TextInput;\n"]}
|
|
@@ -31,6 +31,7 @@ const ToggleButton = ({
|
|
|
31
31
|
toggled = false,
|
|
32
32
|
onPress = () => {},
|
|
33
33
|
initialValue,
|
|
34
|
+
defaultValue,
|
|
34
35
|
disabled = false,
|
|
35
36
|
color = "primary",
|
|
36
37
|
colorSecondary = "surface",
|
|
@@ -44,18 +45,28 @@ const ToggleButton = ({
|
|
|
44
45
|
style,
|
|
45
46
|
...rest
|
|
46
47
|
}) => {
|
|
48
|
+
const [internalValue, setIntervalValue] = React.useState(toggled || defaultValue || false);
|
|
49
|
+
React.useEffect(() => {
|
|
50
|
+
setIntervalValue(toggled);
|
|
51
|
+
}, [toggled]);
|
|
47
52
|
const previousInitialValue = (0, _hooks.usePrevious)(initialValue);
|
|
48
53
|
React.useEffect(() => {
|
|
49
54
|
if (initialValue !== previousInitialValue) {
|
|
50
55
|
onPress(initialValue);
|
|
51
56
|
}
|
|
52
57
|
}, [initialValue, previousInitialValue, onPress]);
|
|
58
|
+
|
|
59
|
+
const handlePress = () => {
|
|
60
|
+
setIntervalValue(!toggled);
|
|
61
|
+
onPress(!toggled);
|
|
62
|
+
};
|
|
63
|
+
|
|
53
64
|
return /*#__PURE__*/React.createElement(_IconButton.default, _extends({
|
|
54
65
|
Icon: Icon,
|
|
55
66
|
icon: icon,
|
|
56
67
|
size: iconSize,
|
|
57
|
-
color:
|
|
58
|
-
onPress:
|
|
68
|
+
color: internalValue ? colors[color] : colors[colorSecondary],
|
|
69
|
+
onPress: handlePress,
|
|
59
70
|
disabled: disabled,
|
|
60
71
|
style: [styles.mainContainer, {
|
|
61
72
|
width,
|