@ngbrown/react-redux-form
Version:
Create Forms Easily with React and Redux
382 lines (317 loc) • 12.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.track = exports.getField = exports.form = exports.batched = exports.modeled = exports.Fieldset = exports.Errors = exports.Form = exports.Control = exports.actionTypes = exports.actions = exports.initialFieldState = exports.combineForms = exports.createForms = exports.modelReducer = exports.formReducer = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactNative = require('react-native');
var _reactNativeSegmentedControlTab = require('react-native-segmented-control-tab');
var _reactNativeSegmentedControlTab2 = _interopRequireDefault(_reactNativeSegmentedControlTab);
var _modelReducer = require('./reducers/model-reducer');
var _modelReducer2 = _interopRequireDefault(_modelReducer);
var _formReducer = require('./reducers/form-reducer');
var _formReducer2 = _interopRequireDefault(_formReducer);
var _modeledEnhancer = require('./enhancers/modeled-enhancer');
var _modeledEnhancer2 = _interopRequireDefault(_modeledEnhancer);
var _actions = require('./actions');
var _actions2 = _interopRequireDefault(_actions);
var _formsReducer = require('./reducers/forms-reducer');
var _formsReducer2 = _interopRequireDefault(_formsReducer);
var _initialFieldState = require('./constants/initial-field-state');
var _initialFieldState2 = _interopRequireDefault(_initialFieldState);
var _actionTypes = require('./action-types');
var _actionTypes2 = _interopRequireDefault(_actionTypes);
var _formComponent = require('./components/form-component');
var _formComponent2 = _interopRequireDefault(_formComponent);
var _fieldsetComponent = require('./components/fieldset-component');
var _fieldsetComponent2 = _interopRequireDefault(_fieldsetComponent);
var _errorsComponent = require('./components/errors-component');
var _errorsComponent2 = _interopRequireDefault(_errorsComponent);
var _batchedEnhancer = require('./enhancers/batched-enhancer');
var _batchedEnhancer2 = _interopRequireDefault(_batchedEnhancer);
var _form = require('./form');
var _form2 = _interopRequireDefault(_form);
var _track = require('./utils/track');
var _track2 = _interopRequireDefault(_track);
var _omit = require('./utils/omit');
var _omit2 = _interopRequireDefault(_omit);
var _get2 = require('./utils/get');
var _get3 = _interopRequireDefault(_get2);
var _getFieldFromState = require('./utils/get-field-from-state');
var _getFieldFromState2 = _interopRequireDefault(_getFieldFromState);
var _controlComponentFactory = require('./components/control-component-factory');
var _controlComponentFactory2 = _interopRequireDefault(_controlComponentFactory);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* eslint-disable react/prop-types */
function getTextValue(value) {
if (typeof value === 'string' || typeof value === 'number') {
return '' + value;
}
return '';
}
var DatePickerAndroid = function DatePickerAndroid() {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return {
open: function () {
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
var _ref2, action, year, month, day, dismissed;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return _reactNative.DatePickerAndroid.open.apply(_reactNative.DatePickerAndroid, args);
case 2:
_ref2 = _context.sent;
action = _ref2.action;
year = _ref2.year;
month = _ref2.month;
day = _ref2.day;
dismissed = action === _reactNative.DatePickerAndroid.dismissedAction;
return _context.abrupt('return', { dismissed: dismissed, action: action, year: year, month: month, day: day });
case 9:
case 'end':
return _context.stop();
}
}
}, _callee, undefined);
}));
return function open() {
return _ref.apply(this, arguments);
};
}()
};
};
var noop = function noop() {
return undefined;
};
var Control = (0, _controlComponentFactory2.default)({
get: _get3.default,
getFieldFromState: _getFieldFromState2.default,
actions: _actions2.default
});
Control.MapView = function (props) {
return _react2.default.createElement(Control, _extends({
component: _reactNative.MapView,
updateOn: 'blur',
mapProps: _extends({
onResponderGrant: function onResponderGrant(_ref3) {
var onFocus = _ref3.onFocus;
return onFocus;
},
onRegionChange: function onRegionChange(_ref4) {
var onChange = _ref4.onChange;
return onChange;
},
onRegionChangeComplete: function onRegionChangeComplete(_ref5) {
var onBlur = _ref5.onBlur;
return onBlur;
},
region: function region(_ref6) {
var modelValue = _ref6.modelValue;
return modelValue;
}
}, props.mapProps)
}, (0, _omit2.default)(props, 'mapProps')));
};
Control.Picker = function (props) {
return _react2.default.createElement(Control, _extends({
component: _reactNative.Picker,
mapProps: _extends({
onResponderGrant: function onResponderGrant(_ref7) {
var onFocus = _ref7.onFocus;
return onFocus;
},
onResponderRelease: function onResponderRelease(_ref8) {
var onBlur = _ref8.onBlur;
return onBlur;
},
selectedValue: function selectedValue(_ref9) {
var modelValue = _ref9.modelValue;
return modelValue;
},
onValueChange: function onValueChange(_ref10) {
var onChange = _ref10.onChange;
return onChange;
},
onChange: noop
}, props.mapProps)
}, (0, _omit2.default)(props, 'mapProps')));
};
Control.Switch = function (props) {
return _react2.default.createElement(Control, _extends({
component: _reactNative.Switch,
mapProps: _extends({
onResponderGrant: function onResponderGrant(_ref11) {
var onFocus = _ref11.onFocus;
return onFocus;
},
onResponderRelease: function onResponderRelease(_ref12) {
var onBlur = _ref12.onBlur;
return onBlur;
},
value: function value(_ref13) {
var modelValue = _ref13.modelValue;
return !!modelValue;
},
onValueChange: function onValueChange(_ref14) {
var onChange = _ref14.onChange;
return onChange;
},
onChange: noop
}, props.mapProps)
}, (0, _omit2.default)(props, 'mapProps')));
};
Control.TextInput = function (props) {
return _react2.default.createElement(Control, _extends({
component: _reactNative.TextInput,
mapProps: _extends({
onResponderGrant: function onResponderGrant(_ref15) {
var onFocus = _ref15.onFocus;
return onFocus;
},
value: function value(_props) {
return !_props.defaultValue && !_props.hasOwnProperty('value') ? getTextValue(_props.viewValue) : _props.value;
},
onChangeText: function onChangeText(_ref16) {
var onChange = _ref16.onChange;
return onChange;
},
onChange: noop,
onBlur: function onBlur(_ref17) {
var _onBlur = _ref17.onBlur,
viewValue = _ref17.viewValue;
return function () {
return _onBlur(viewValue);
};
},
onFocus: function onFocus(_ref18) {
var _onFocus = _ref18.onFocus;
return _onFocus;
}
}, props.mapProps)
}, (0, _omit2.default)(props, 'mapProps')));
};
Control.DatePickerIOS = function (props) {
return _react2.default.createElement(Control, _extends({
component: _reactNative.DatePickerIOS,
mapProps: _extends({
onResponderGrant: function onResponderGrant(_ref19) {
var onFocus = _ref19.onFocus;
return onFocus;
},
onResponderRelease: function onResponderRelease(_ref20) {
var onBlur = _ref20.onBlur;
return onBlur;
},
date: function date(_ref21) {
var modelValue = _ref21.modelValue;
return modelValue;
},
onDateChange: function onDateChange(_ref22) {
var onChange = _ref22.onChange;
return onChange;
},
onChange: noop
}, props.mapProps)
}, (0, _omit2.default)(props, 'mapProps')));
};
Control.DatePickerAndroid = DatePickerAndroid;
Control.SegmentedControlIOS = function (props) {
return _react2.default.createElement(Control, _extends({
component: _reactNative.SegmentedControlIOS,
mapProps: _extends({
onResponderGrant: function onResponderGrant(_ref23) {
var onFocus = _ref23.onFocus;
return onFocus;
},
selectedIndex: function selectedIndex(_ref24) {
var values = _ref24.values,
modelValue = _ref24.modelValue;
return values.indexOf(modelValue);
},
onValueChange: function onValueChange(_ref25) {
var onChange = _ref25.onChange;
return onChange;
},
onChange: noop
}, props.mapProps)
}, (0, _omit2.default)(props, 'mapProps')));
};
Control.SegmentedControlAndroid = function (props) {
return _react2.default.createElement(Control, _extends({
component: _reactNativeSegmentedControlTab2.default,
mapProps: _extends({
onResponderGrant: function onResponderGrant(_ref26) {
var onFocus = _ref26.onFocus;
return onFocus;
},
selectedIndex: function selectedIndex(_ref27) {
var values = _ref27.values,
modelValue = _ref27.modelValue;
return values.indexOf(modelValue);
},
onValueChange: function onValueChange(_ref28) {
var onChange = _ref28.onChange;
return onChange;
},
onChange: noop
}, props.mapProps)
}, (0, _omit2.default)(props, 'mapProps')));
};
Control.Slider = function (props) {
return _react2.default.createElement(Control, _extends({
component: _reactNative.Slider,
mapProps: _extends({
value: function value(_ref29) {
var modelValue = _ref29.modelValue;
return modelValue;
},
onResponderGrant: function onResponderGrant(_ref30) {
var onFocus = _ref30.onFocus;
return onFocus;
},
onSlidingComplete: function onSlidingComplete(_ref31) {
var onBlur = _ref31.onBlur;
return onBlur;
},
onValueChange: function onValueChange(_ref32) {
var onChange = _ref32.onChange;
return onChange;
},
onChange: noop
}, props.mapProps)
}, (0, _omit2.default)(props, 'mapProps')));
};
var NativeForm = function NativeForm(props) {
return _react2.default.createElement(_formComponent2.default, _extends({ component: _reactNative.View }, (0, _omit2.default)(props, 'mapProps')));
};
var NativeFieldset = function NativeFieldset(props) {
return _react2.default.createElement(_fieldsetComponent2.default, _extends({ component: _reactNative.View }, (0, _omit2.default)(props, 'mapProps')));
};
var NativeErrors = function NativeErrors(props) {
return _react2.default.createElement(_errorsComponent2.default, _extends({
wrapper: _reactNative.View,
component: _reactNative.Text
}, props));
};
exports.formReducer = _formReducer2.default;
exports.modelReducer = _modelReducer2.default;
exports.createForms = _formsReducer.createForms;
exports.combineForms = _formsReducer2.default;
exports.initialFieldState = _initialFieldState2.default;
exports.actions = _actions2.default;
exports.actionTypes = _actionTypes2.default;
exports.Control = Control;
exports.Form = NativeForm;
exports.Errors = NativeErrors;
exports.Fieldset = NativeFieldset;
exports.modeled = _modeledEnhancer2.default;
exports.batched = _batchedEnhancer2.default;
exports.form = _form2.default;
exports.getField = _getFieldFromState2.default;
exports.track = _track2.default;