@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":["TextField.tsx"],"names":["React","View","Animated","TextInput","NativeTextInput","StyleSheet","Text","I18nManager","withTheme","GROUPS","COMPONENT_TYPES","FORM_TYPES","PROP_TYPES","FIELD_NAME","TEXT_INPUT_PROPS","Triggers","createColorProp","createNumberProp","createFieldNameProp","applyStyles","extractStyles","AnimatedText","createAnimatedComponent","FOCUS_ANIMATION_DURATION","BLUR_ANIMATION_DURATION","ICON_SIZE","TextField","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","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","isRTL","SEED_DATA_PROPS","group","data","description","formType","string","propType","STRING","defaultValue","required","basic","boolean","BOOLEAN","icon","ASSET","flatArray","options","fieldName","handlerPropName","SEED_DATA_TRIGGERS","OnChangeText","SEED_DATA","tag","category","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":["React","View","Animated","TextInput","NativeTextInput","StyleSheet","Text","I18nManager","withTheme","GROUPS","COMPONENT_TYPES","FORM_TYPES","PROP_TYPES","FIELD_NAME","TEXT_INPUT_PROPS","Triggers","createColorProp","createNumberProp","createFieldNameProp","applyStyles","extractStyles","AnimatedText","createAnimatedComponent","FOCUS_ANIMATION_DURATION","BLUR_ANIMATION_DURATION","ICON_SIZE","TextField","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","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","isRTL","SEED_DATA_PROPS","group","data","description","formType","string","propType","STRING","required","basic","boolean","BOOLEAN","icon","ASSET","flatArray","options","fieldName","handlerPropName","SEED_DATA_TRIGGERS","OnChangeText","SEED_DATA","tag","category","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"]}
|
|
@@ -11,7 +11,7 @@ const TextInput = ({
|
|
|
11
11
|
}) => {
|
|
12
12
|
const previousInitialValue = usePrevious(initialValue);
|
|
13
13
|
React.useEffect(() => {
|
|
14
|
-
if (initialValue !== previousInitialValue) {
|
|
14
|
+
if (initialValue !== previousInitialValue && onChangeText) {
|
|
15
15
|
onChangeText(initialValue);
|
|
16
16
|
}
|
|
17
17
|
}, [initialValue, previousInitialValue, onChangeText]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["TextInput.tsx"],"names":["React","TextInput","NativeTextInput","usePrevious","initialValue","onChangeText","props","previousInitialValue","useEffect"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAS,IAAIC,eAAtB,QAA6C,cAA7C;AACA,SAASC,WAAT,QAA4B,UAA5B;;AAOA,MAAMF,SAA0B,GAAG,CAAC;AAClCG,EAAAA,YADkC;AAElCC,EAAAA,YAFkC;AAGlC,KAAGC;AAH+B,CAAD,KAI7B;AACJ,QAAMC,oBAAoB,GAAGJ,WAAW,CAACC,YAAD,CAAxC;AACAJ,EAAAA,KAAK,CAACQ,SAAN,CAAgB,MAAM;AACpB,QAAIJ,YAAY,KAAKG,
|
|
1
|
+
{"version":3,"sources":["TextInput.tsx"],"names":["React","TextInput","NativeTextInput","usePrevious","initialValue","onChangeText","props","previousInitialValue","useEffect"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAS,IAAIC,eAAtB,QAA6C,cAA7C;AACA,SAASC,WAAT,QAA4B,UAA5B;;AAOA,MAAMF,SAA0B,GAAG,CAAC;AAClCG,EAAAA,YADkC;AAElCC,EAAAA,YAFkC;AAGlC,KAAGC;AAH+B,CAAD,KAI7B;AACJ,QAAMC,oBAAoB,GAAGJ,WAAW,CAACC,YAAD,CAAxC;AACAJ,EAAAA,KAAK,CAACQ,SAAN,CAAgB,MAAM;AACpB,QAAIJ,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,oBAAC,eAAD;AAAiB,IAAA,YAAY,EAAEA;AAA/B,KAAiDC,KAAjD,EAAP;AACD,CAbD;;AAeA,eAAeL,SAAf","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"]}
|
|
@@ -14,6 +14,7 @@ const ToggleButton = ({
|
|
|
14
14
|
toggled = false,
|
|
15
15
|
onPress = () => {},
|
|
16
16
|
initialValue,
|
|
17
|
+
defaultValue,
|
|
17
18
|
disabled = false,
|
|
18
19
|
color = "primary",
|
|
19
20
|
colorSecondary = "surface",
|
|
@@ -27,18 +28,28 @@ const ToggleButton = ({
|
|
|
27
28
|
style,
|
|
28
29
|
...rest
|
|
29
30
|
}) => {
|
|
31
|
+
const [internalValue, setIntervalValue] = React.useState(toggled || defaultValue || false);
|
|
32
|
+
React.useEffect(() => {
|
|
33
|
+
setIntervalValue(toggled);
|
|
34
|
+
}, [toggled]);
|
|
30
35
|
const previousInitialValue = usePrevious(initialValue);
|
|
31
36
|
React.useEffect(() => {
|
|
32
37
|
if (initialValue !== previousInitialValue) {
|
|
33
38
|
onPress(initialValue);
|
|
34
39
|
}
|
|
35
40
|
}, [initialValue, previousInitialValue, onPress]);
|
|
41
|
+
|
|
42
|
+
const handlePress = () => {
|
|
43
|
+
setIntervalValue(!toggled);
|
|
44
|
+
onPress(!toggled);
|
|
45
|
+
};
|
|
46
|
+
|
|
36
47
|
return /*#__PURE__*/React.createElement(IconButton, _extends({
|
|
37
48
|
Icon: Icon,
|
|
38
49
|
icon: icon,
|
|
39
50
|
size: iconSize,
|
|
40
|
-
color:
|
|
41
|
-
onPress:
|
|
51
|
+
color: internalValue ? colors[color] : colors[colorSecondary],
|
|
52
|
+
onPress: handlePress,
|
|
42
53
|
disabled: disabled,
|
|
43
54
|
style: [styles.mainContainer, {
|
|
44
55
|
width,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ToggleButton.tsx"],"names":["React","withTheme","GROUPS","StyleSheet","IconButton","COMPONENT_TYPES","createIconProp","createBoolProp","createColorProp","createStaticNumberProp","createFieldNameProp","createIconSizeProp","createActionProp","Triggers","usePrevious","ToggleButton","Icon","icon","toggled","onPress","initialValue","disabled","color","colorSecondary","borderColor","iconSize","width","height","theme","colors","style","rest","
|
|
1
|
+
{"version":3,"sources":["ToggleButton.tsx"],"names":["React","withTheme","GROUPS","StyleSheet","IconButton","COMPONENT_TYPES","createIconProp","createBoolProp","createColorProp","createStaticNumberProp","createFieldNameProp","createIconSizeProp","createActionProp","Triggers","usePrevious","ToggleButton","Icon","icon","toggled","onPress","initialValue","defaultValue","disabled","color","colorSecondary","borderColor","iconSize","width","height","theme","colors","style","rest","internalValue","setIntervalValue","useState","useEffect","previousInitialValue","handlePress","styles","mainContainer","backgroundColor","create","borderWidth","SEED_DATA","name","tag","category","button","layout","triggers","OnPress","props","required","fieldName","valuePropName","label","description","group","basic"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { withTheme } from \"../theming\";\nimport { colorTypes, GROUPS } from \"@draftbit/types\";\nimport { StyleProp, StyleSheet, ViewStyle } from \"react-native\";\nimport IconButton from \"./IconButton\";\nimport {\n COMPONENT_TYPES,\n createIconProp,\n createBoolProp,\n createColorProp,\n createStaticNumberProp,\n createFieldNameProp,\n createIconSizeProp,\n createActionProp,\n Triggers,\n} from \"@draftbit/types\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\nimport { usePrevious } from \"../hooks\";\n\ntype Props = {\n icon: string;\n toggled?: boolean;\n onPress?: (toggled: boolean) => void;\n initialValue?: boolean; // deprecated\n defaultValue?: boolean;\n disabled?: boolean;\n color?: colorTypes;\n colorSecondary?: colorTypes;\n borderColor?: colorTypes;\n iconSize?: number;\n width?: number;\n height?: number;\n style?: StyleProp<ViewStyle>;\n theme: Theme;\n} & IconSlot;\n\nconst ToggleButton: React.FC<Props> = ({\n Icon,\n icon,\n toggled = false,\n onPress = () => {},\n initialValue,\n defaultValue,\n disabled = false,\n color = \"primary\",\n colorSecondary = \"surface\",\n borderColor = \"divider\",\n iconSize = 25,\n width = 50,\n height = 50,\n theme: { colors },\n style,\n ...rest\n}) => {\n const [internalValue, setIntervalValue] = React.useState<boolean>(\n toggled || defaultValue || false\n );\n\n React.useEffect(() => {\n setIntervalValue(toggled);\n }, [toggled]);\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue) {\n onPress(initialValue);\n }\n }, [initialValue, previousInitialValue, onPress]);\n\n const handlePress = () => {\n setIntervalValue(!toggled);\n onPress(!toggled);\n };\n\n return (\n <IconButton\n Icon={Icon}\n icon={icon}\n size={iconSize}\n color={internalValue ? colors[color] : colors[colorSecondary]}\n onPress={handlePress}\n disabled={disabled}\n style={[\n styles.mainContainer,\n {\n width,\n height,\n backgroundColor: toggled ? colors[colorSecondary] : colors[color],\n borderColor: colors[borderColor],\n },\n style,\n ]}\n {...rest}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n mainContainer: {\n borderWidth: 1,\n },\n});\n\nexport default withTheme(ToggleButton);\n\nexport const SEED_DATA = {\n name: \"Toggle Button\",\n tag: \"ToggleButton\",\n category: COMPONENT_TYPES.button,\n layout: {},\n triggers: [Triggers.OnPress],\n props: {\n onPress: createActionProp(),\n icon: createIconProp({\n required: true,\n }),\n iconSize: createIconSizeProp(),\n fieldName: createFieldNameProp({\n defaultValue: false,\n valuePropName: \"toggled\",\n }),\n disabled: createBoolProp({\n label: \"Disabled\",\n description: \"Whether the button should be disabled\",\n group: GROUPS.basic,\n }),\n color: createColorProp({\n group: GROUPS.basic,\n }),\n colorSecondary: createColorProp({\n label: \"Secondary Color\",\n group: GROUPS.basic,\n }),\n borderColor: createColorProp({\n label: \"Border Color\",\n group: GROUPS.basic,\n }),\n width: createStaticNumberProp({\n label: \"Width\",\n description: \"Width\",\n defaultValue: 50,\n }),\n height: createStaticNumberProp({\n label: \"Height\",\n description: \"Height\",\n defaultValue: 50,\n }),\n },\n};\n"]}
|
|
@@ -7,10 +7,11 @@ declare type Props = {
|
|
|
7
7
|
placeholder?: string;
|
|
8
8
|
style?: StyleProp<ViewStyle>;
|
|
9
9
|
theme: Theme;
|
|
10
|
-
onChange
|
|
10
|
+
onChange?: (text: string) => void;
|
|
11
11
|
onSubmit?: (e: NativeSyntheticEvent<TextInputSubmitEditingEventData>) => void;
|
|
12
|
-
value
|
|
12
|
+
value?: string;
|
|
13
13
|
initialValue?: string;
|
|
14
|
+
defaultValue?: string;
|
|
14
15
|
} & IconSlot;
|
|
15
16
|
declare const _default: React.ComponentType<import("@draftbit/react-theme-provider").$Without<Props, "theme"> & {
|
|
16
17
|
theme?: import("@draftbit/react-theme-provider").$DeepPartial<any> | undefined;
|
|
@@ -2,7 +2,7 @@ import * as React from "react";
|
|
|
2
2
|
import { PickerComponentProps, PickerOption } from "./PickerTypes";
|
|
3
3
|
declare type Props = PickerComponentProps & {
|
|
4
4
|
placeholder?: string;
|
|
5
|
-
value
|
|
5
|
+
value?: string;
|
|
6
6
|
options: PickerOption[] | string[];
|
|
7
7
|
};
|
|
8
8
|
declare const _default: React.ComponentType<import("@draftbit/react-theme-provider").$Without<Props, "theme"> & {
|
|
@@ -13,6 +13,7 @@ export interface PickerComponentProps extends TextFieldProps {
|
|
|
13
13
|
placeholder?: string;
|
|
14
14
|
selectedValue: string;
|
|
15
15
|
disabled?: boolean;
|
|
16
|
-
onValueChange
|
|
16
|
+
onValueChange?: (value: string, index: number) => void;
|
|
17
17
|
initialValue?: string;
|
|
18
|
+
defaultValue?: string;
|
|
18
19
|
}
|
|
@@ -5,9 +5,10 @@ import { Direction } from "./context";
|
|
|
5
5
|
export interface RadioButtonGroupProps {
|
|
6
6
|
direction?: Direction;
|
|
7
7
|
style?: StyleProp<ViewStyle>;
|
|
8
|
-
value
|
|
8
|
+
value?: string;
|
|
9
9
|
onValueChange: (value: string) => void;
|
|
10
10
|
initialValue?: string;
|
|
11
|
+
defaultValue?: string;
|
|
11
12
|
theme: Theme;
|
|
12
13
|
children: React.ReactNode;
|
|
13
14
|
}
|
|
@@ -6,6 +6,7 @@ export declare type Props = {
|
|
|
6
6
|
style?: StyleProp<ViewStyle>;
|
|
7
7
|
value?: number;
|
|
8
8
|
initialValue?: number;
|
|
9
|
+
defaultValue?: number;
|
|
9
10
|
minimumTrackTintColor: string;
|
|
10
11
|
maximumTrackTintColor: string;
|
|
11
12
|
leftIcon?: string;
|
|
@@ -20,11 +21,12 @@ export declare type Props = {
|
|
|
20
21
|
onValueChange?: (value: number) => void;
|
|
21
22
|
theme: Theme;
|
|
22
23
|
} & IconSlot;
|
|
23
|
-
declare function Slider({ Icon, leftIcon, rightIcon, leftIconColor, rightIconColor, value, initialValue, minimumTrackTintColor, maximumTrackTintColor, thumbTintColor, minimumValue, maximumValue, tapToSeek, step, onValueChange, style, theme, ...rest }: Props): JSX.Element;
|
|
24
|
+
declare function Slider({ Icon, leftIcon, rightIcon, leftIconColor, rightIconColor, value, initialValue, defaultValue, minimumTrackTintColor, maximumTrackTintColor, thumbTintColor, minimumValue, maximumValue, tapToSeek, step, onValueChange, style, theme, ...rest }: Props): JSX.Element;
|
|
24
25
|
declare const _default: React.ComponentType<import("@draftbit/react-theme-provider").$Without<{
|
|
25
26
|
style?: StyleProp<ViewStyle>;
|
|
26
27
|
value?: number | undefined;
|
|
27
28
|
initialValue?: number | undefined;
|
|
29
|
+
defaultValue?: number | undefined;
|
|
28
30
|
minimumTrackTintColor: string;
|
|
29
31
|
maximumTrackTintColor: string;
|
|
30
32
|
leftIcon?: string | undefined;
|
|
@@ -1542,6 +1544,7 @@ declare const _default: React.ComponentType<import("@draftbit/react-theme-provid
|
|
|
1542
1544
|
style?: StyleProp<ViewStyle>;
|
|
1543
1545
|
value?: number | undefined;
|
|
1544
1546
|
initialValue?: number | undefined;
|
|
1547
|
+
defaultValue?: number | undefined;
|
|
1545
1548
|
minimumTrackTintColor: string;
|
|
1546
1549
|
maximumTrackTintColor: string;
|
|
1547
1550
|
leftIcon?: string | undefined;
|
|
@@ -7,15 +7,11 @@ export interface SwiperProps {
|
|
|
7
7
|
timeout?: number;
|
|
8
8
|
prevTitle?: string;
|
|
9
9
|
nextTitle?: string;
|
|
10
|
-
prevTitleColor: string;
|
|
11
|
-
nextTitleColor: string;
|
|
12
10
|
dotsTouchable?: boolean;
|
|
13
|
-
dotColor?: string;
|
|
14
|
-
dotActiveColor?: string;
|
|
15
11
|
children: React.ReactNode;
|
|
16
12
|
style?: StyleProp<ViewStyle>;
|
|
17
13
|
}
|
|
18
|
-
declare const Swiper: ({ vertical, loop, timeout, from, prevTitle, nextTitle,
|
|
14
|
+
declare const Swiper: ({ vertical, loop, timeout, from, prevTitle, nextTitle, dotsTouchable, children, style, }: SwiperProps) => JSX.Element;
|
|
19
15
|
export default Swiper;
|
|
20
16
|
export declare const SEED_DATA: {
|
|
21
17
|
name: string;
|
|
@@ -71,46 +67,6 @@ export declare const SEED_DATA: {
|
|
|
71
67
|
};
|
|
72
68
|
prevTitle: any;
|
|
73
69
|
nextTitle: any;
|
|
74
|
-
prevTitleColor: {
|
|
75
|
-
group: string;
|
|
76
|
-
label: string;
|
|
77
|
-
description: string;
|
|
78
|
-
editable: boolean;
|
|
79
|
-
required: boolean;
|
|
80
|
-
defaultValue: null;
|
|
81
|
-
formType: string;
|
|
82
|
-
propType: string;
|
|
83
|
-
};
|
|
84
|
-
nextTitleColor: {
|
|
85
|
-
group: string;
|
|
86
|
-
label: string;
|
|
87
|
-
description: string;
|
|
88
|
-
editable: boolean;
|
|
89
|
-
required: boolean;
|
|
90
|
-
defaultValue: null;
|
|
91
|
-
formType: string;
|
|
92
|
-
propType: string;
|
|
93
|
-
};
|
|
94
|
-
dotColor: {
|
|
95
|
-
group: string;
|
|
96
|
-
label: string;
|
|
97
|
-
description: string;
|
|
98
|
-
editable: boolean;
|
|
99
|
-
required: boolean;
|
|
100
|
-
defaultValue: null;
|
|
101
|
-
formType: string;
|
|
102
|
-
propType: string;
|
|
103
|
-
};
|
|
104
|
-
dotActiveColor: {
|
|
105
|
-
group: string;
|
|
106
|
-
label: string;
|
|
107
|
-
description: string;
|
|
108
|
-
editable: boolean;
|
|
109
|
-
required: boolean;
|
|
110
|
-
defaultValue: null;
|
|
111
|
-
formType: string;
|
|
112
|
-
propType: string;
|
|
113
|
-
};
|
|
114
70
|
dotsTouchable: {
|
|
115
71
|
label: string;
|
|
116
72
|
description: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@draftbit/core",
|
|
3
|
-
"version": "42.
|
|
3
|
+
"version": "42.4.0",
|
|
4
4
|
"description": "Core (non-native) Components",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -95,5 +95,5 @@
|
|
|
95
95
|
]
|
|
96
96
|
]
|
|
97
97
|
},
|
|
98
|
-
"gitHead": "
|
|
98
|
+
"gitHead": "d011caaeccc55707cfa48c4264240a9a05b2c67a"
|
|
99
99
|
}
|
|
@@ -10,7 +10,11 @@ export var CheckboxStatus;
|
|
|
10
10
|
CheckboxStatus["Unchecked"] = "unchecked";
|
|
11
11
|
CheckboxStatus["Indeterminate"] = "indeterminate";
|
|
12
12
|
})(CheckboxStatus || (CheckboxStatus = {}));
|
|
13
|
-
const Checkbox = ({ Icon, status = CheckboxStatus.Unchecked, disabled = false, onPress = () => { }, color, uncheckedColor, indeterminateColor, initialValue, checkedIcon = "MaterialCommunityIcons/checkbox-marked", uncheckedIcon = "MaterialCommunityIcons/checkbox-blank-outline", indeterminateIcon = "AntDesign/minussquareo", size = 24, style, ...rest }) => {
|
|
13
|
+
const Checkbox = ({ Icon, status = CheckboxStatus.Unchecked, disabled = false, onPress = () => { }, color, uncheckedColor, indeterminateColor, initialValue, defaultValue, checkedIcon = "MaterialCommunityIcons/checkbox-marked", uncheckedIcon = "MaterialCommunityIcons/checkbox-blank-outline", indeterminateIcon = "AntDesign/minussquareo", size = 24, style, ...rest }) => {
|
|
14
|
+
const [internalValue, setInternalValue] = React.useState(status || defaultValue);
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
setInternalValue(status);
|
|
17
|
+
}, [status]);
|
|
14
18
|
const previousInitialValue = usePrevious(initialValue);
|
|
15
19
|
React.useEffect(() => {
|
|
16
20
|
if (initialValue !== previousInitialValue) {
|
|
@@ -29,8 +33,14 @@ const Checkbox = ({ Icon, status = CheckboxStatus.Unchecked, disabled = false, o
|
|
|
29
33
|
[CheckboxStatus.Indeterminate]: indeterminateIcon,
|
|
30
34
|
};
|
|
31
35
|
const checkboxColor = colorsMap[status];
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
const handlePress = () => {
|
|
37
|
+
setInternalValue(internalValue === CheckboxStatus.Unchecked
|
|
38
|
+
? CheckboxStatus.Checked
|
|
39
|
+
: CheckboxStatus.Unchecked);
|
|
40
|
+
onPress(internalValue === CheckboxStatus.Unchecked);
|
|
41
|
+
};
|
|
42
|
+
return (React.createElement(Touchable, { ...rest, onPress: handlePress, disabled: disabled, accessibilityState: { disabled }, accessibilityRole: "button", accessibilityLiveRegion: "polite", style: [styles.container, style, { width: size, height: size }] },
|
|
43
|
+
React.createElement(Icon, { style: styles.icon, name: iconsMap[internalValue], size: size, color: checkboxColor }),
|
|
34
44
|
React.createElement(View, { style: [StyleSheet.absoluteFill, styles.fillContainer] },
|
|
35
45
|
React.createElement(View, { style: [
|
|
36
46
|
styles.fill,
|