UNPKG

refire-react

Version:

React components and helpers for Refire

79 lines 3.89 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var react_1 = require("react"); var react_redux_1 = require("react-redux"); var refire_1 = require("refire"); var clearRegistrationError = refire_1.firebaseActions.clearRegistrationError, createUser = refire_1.firebaseActions.createUser; // default validator assumes that each field has some value var defaultValidator = function (state) { return Object.keys(state).every(function (field) { return !!state[field]; }); }; // default submit dispatches createUser action var defaultSubmit = function (dispatch, state) { return dispatch(createUser(state.email, state.password)).catch(function () { }); }; function default_1(options) { if (options === void 0) { options = {}; } var _a = options.fields, fields = _a === void 0 ? ["email", "password"] : _a, _b = options.submit, submit = _b === void 0 ? defaultSubmit : _b, _c = options.validator, validator = _c === void 0 ? defaultValidator : _c; return function (WrappedComponent) { var FirebaseRegistration = /** @class */ (function (_super) { __extends(FirebaseRegistration, _super); function FirebaseRegistration(props) { var _this = _super.call(this, props) || this; _this.update = function (field) { return function (event) { var error = _this.props._status.errors.createUser; if (error) { _this.props.dispatch(clearRegistrationError()); } _this.setState((_a = {}, _a[field] = event.currentTarget.value, _a)); var _a; }; }; _this.submit = function (event) { event.preventDefault(); submit(_this.props.dispatch, _this.state); }; _this.state = fields.reduce(function (initialState, field) { return __assign({}, initialState, (_a = {}, _a[field] = null, _a)); var _a; }, {}); return _this; } FirebaseRegistration.prototype.render = function () { var validInput = validator(this.state); var _a = this.props._status, error = _a.errors.createUser, processing = _a.processing.createUser, completed = _a.completed.createUser; var extraProps = __assign({}, this.state, { submit: this.submit, update: this.update, validInput: validInput, error: error, processing: processing, completed: completed }); return (React.createElement(WrappedComponent, __assign({}, this.props, extraProps))); }; return FirebaseRegistration; }(react_1.Component)); return react_redux_1.connect(refire_1.firebaseToProps(["_status"]))(FirebaseRegistration); }; } exports.default = default_1; //# sourceMappingURL=FirebaseRegistration.js.map