UNPKG

@react-form-fields/native-base

Version:

Native Base Form Fields

49 lines 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var useConfigContext_1 = require("@react-form-fields/core/hooks/useConfigContext"); var useMemoOtherProps_1 = require("@react-form-fields/core/hooks/useMemoOtherProps"); var useValidation_1 = require("@react-form-fields/core/hooks/useValidation"); var native_base_1 = require("native-base"); var React = require("react"); var react_native_1 = require("react-native"); var useFieldFlow_1 = require("./hooks/useFieldFlow"); var ErrorMessage_1 = require("./shared/ErrorMessage"); var ThemeProvider_1 = require("./shared/ThemeProvider"); var FieldSwitch = React.memo(function (props) { var onChange = props.onChange, helperText = props.helperText, label = props.label, marginBottom = props.marginBottom, value = props.value; var config = useConfigContext_1.default(); var _a = useValidation_1.default(props), setDirty = _a.setDirty, showError = _a.showError, errorMessage = _a.errorMessage, isValid = _a.isValid; var otherProps = useMemoOtherProps_1.default(props, 'checked', 'onChange', 'label', 'styleError', 'marginBottom'); useFieldFlow_1.default(props, React.useCallback(function () { }, [])); var onChangeHandler = React.useCallback(function (value) { config.validationOn === 'onChange' && setDirty(true); onChange(value); }, [onChange, setDirty, config.validationOn]); return (React.createElement(ThemeProvider_1.default, null, React.createElement(react_native_1.View, { style: marginBottom ? styles.margin : null }, React.createElement(react_native_1.View, { style: styles.row }, React.createElement(react_native_1.View, null, typeof label === 'string' ? React.createElement(react_native_1.Text, { style: styles.text }, label) : label), React.createElement(native_base_1.Switch, tslib_1.__assign({}, otherProps, { value: value, onValueChange: onChangeHandler }))), React.createElement(ErrorMessage_1.default, { isValid: isValid, showError: showError, helperText: helperText, errorMessage: errorMessage })))); }); var styles = react_native_1.StyleSheet.create({ margin: { marginBottom: 20 }, row: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', paddingVertical: 8 }, text: { fontSize: 16 }, textContainer: { flex: 1 } }); FieldSwitch.displayName = 'FieldSwitch'; exports.default = FieldSwitch; //# sourceMappingURL=Switch.js.map