backpack-ui
Version:
Lonely Planet's Components
199 lines (156 loc) • 6.54 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require("babel-runtime/helpers/defineProperty");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _getPrototypeOf = require("babel-runtime/core-js/object/get-prototype-of");
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require("babel-runtime/helpers/possibleConstructorReturn");
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _createClass2 = require("babel-runtime/helpers/createClass");
var _createClass3 = _interopRequireDefault(_createClass2);
var _inherits2 = require("babel-runtime/helpers/inherits");
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _reactValidateForm = require("react-validate-form");
var _reactValidateForm2 = _interopRequireDefault(_reactValidateForm);
var _propTypes = require("prop-types");
var _propTypes2 = _interopRequireDefault(_propTypes);
var _colors = require("../../styles/colors");
var _colors2 = _interopRequireDefault(_colors);
var _validations = require("../../utils/validations");
var _input = require("../form/input");
var _input2 = _interopRequireDefault(_input);
var _button = require("../button");
var _button2 = _interopRequireDefault(_button);
var _errorMessages = require("../form/errorMessages");
var _errorMessages2 = _interopRequireDefault(_errorMessages);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var styles = {
container: {
textAlign: "center"
},
inputContainer: {
marginBottom: "23px"
},
input: {
borderBottom: "1px solid " + _colors2.default.borderPrimary
}
};
var LegacyForm = function (_React$Component) {
(0, _inherits3.default)(LegacyForm, _React$Component);
(0, _createClass3.default)(LegacyForm, null, [{
key: "setIdentifierType",
value: function setIdentifierType(val) {
return _validations.emailValidation.test(val) ? "email" : "username";
}
}]);
function LegacyForm(props) {
(0, _classCallCheck3.default)(this, LegacyForm);
var _this = (0, _possibleConstructorReturn3.default)(this, (LegacyForm.__proto__ || (0, _getPrototypeOf2.default)(LegacyForm)).call(this, props));
_this.state = {
identifierValue: "",
identifierType: "username",
passwordValue: "",
showErrors: false,
valid: false
};
_this.handleChange = _this.handleChange.bind(_this);
return _this;
}
(0, _createClass3.default)(LegacyForm, [{
key: "handleChange",
value: function handleChange(e, type) {
var _setState;
this.setState((_setState = {}, (0, _defineProperty3.default)(_setState, type + "Value", e.target.value), (0, _defineProperty3.default)(_setState, "identifierType", type === "identifier" ? LegacyForm.setIdentifierType(e.target.value) : this.state.identifierType), _setState));
}
}, {
key: "render",
value: function render() {
var _this2 = this;
var qaHook = this.props.qaHook;
return _react2.default.createElement(
"div",
{ style: styles.container },
_react2.default.createElement(
_reactValidateForm2.default,
null,
function (_ref) {
var validate = _ref.validate,
errorMessages = _ref.errorMessages;
return _react2.default.createElement(
"form",
{
"data-testid": qaHook ? "legacy-login-form" : null,
action: _this2.props.authLink,
ref: function ref(node) {
_this2.form = node;
},
method: "post"
},
_react2.default.createElement(
"div",
{ style: styles.inputContainer },
_react2.default.createElement("input", { type: "hidden", name: "user_identifier_type", value: _this2.state.identifierType }),
_react2.default.createElement(_input2.default, {
autoFocus: true,
theme: "float",
type: "text",
name: "user_identifier",
required: true,
qaHook: qaHook,
customStyles: styles.input,
error: errorMessages.user_identifier && errorMessages.user_identifier.length > 0,
placeholder: "Email or username",
onChange: function onChange(e) {
_this2.handleChange(e, "identifier");
},
onBlur: validate,
value: _this2.state.identifierValue
}),
_react2.default.createElement(_input2.default, {
theme: "float",
type: "password",
name: "password",
placeholder: "Password",
required: true,
qaHook: qaHook,
customStyles: styles.input,
error: errorMessages.password && errorMessages.password.length > 0,
onChange: function onChange(e) {
_this2.handleChange(e, "password");
},
onBlur: validate,
value: _this2.state.passwordValue
}),
errorMessages.user_identifier && errorMessages.user_identifier.length > 0 && _react2.default.createElement(_errorMessages2.default, { qaHook: qaHook, messages: ["Username/Email is required"] }),
errorMessages.password && errorMessages.password.length > 0 && _react2.default.createElement(_errorMessages2.default, { qaHook: qaHook, messages: errorMessages.password })
),
_react2.default.createElement(
_button2.default,
{
rounded: true,
qaHook: qaHook
},
"Submit"
)
);
}
)
);
}
}]);
return LegacyForm;
}(_react2.default.Component);
LegacyForm.propTypes = {
authLink: _propTypes2.default.string.isRequired,
qaHook: _propTypes2.default.bool
};
LegacyForm.defaultProps = {
qaHook: false
};
exports.default = LegacyForm;