UNPKG

9.44 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports["default"] = void 0;
7
8var _react = _interopRequireWildcard(require("react"));
9
10var _CircularProgress = _interopRequireDefault(require("@material-ui/core/CircularProgress"));
11
12var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
13
14var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
15
16var _withStyles = _interopRequireDefault(require("@material-ui/core/styles/withStyles"));
17
18var _Link = _interopRequireDefault(require("react-router-dom/Link"));
19
20var _formData2 = _interopRequireDefault(require("sharyn/client/form-data"));
21
22var _Page = _interopRequireDefault(require("sharyn/components/Page"));
23
24var _cond = _interopRequireDefault(require("sharyn/util/cond"));
25
26var _i18n = require("../i18n");
27
28var _CustomButton = _interopRequireDefault(require("./CustomButton"));
29
30var _propTypes = _interopRequireDefault(require("prop-types"));
31
32function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
33
34function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
35
36function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
37
38function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
39
40function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
41
42function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
43
44function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
45
46function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
47
48var translations = {
49 'forgotten password': {
50 fr: 'Mot de passe oublié',
51 en: 'Forgotten Password',
52 es: 'Contraseña olvidada'
53 },
54 'back to login page': {
55 fr: 'Retour à la page de connexion',
56 en: 'Back to login page',
57 es: 'Volver a la página de conexión'
58 },
59 'reset password': {
60 fr: 'Changer le mot de passe',
61 en: 'Reset password',
62 es: 'Cambiar contraseña'
63 },
64 'email or username': {
65 fr: "E-mail ou nom d'utilisateur",
66 en: 'Email or username',
67 es: 'Email o nombre de usuario'
68 },
69 'reset password email sent': {
70 fr: 'Un e-mail vous a été envoyé pour changer de mot de passe.',
71 en: 'An email has been sent to you to set your new password.',
72 es: 'Se le ha enviado un correo electrónico para configurar su nueva contraseña.'
73 },
74 'call error message': {
75 fr: "Cela n'a pas fonctionné. Merci de réessayer plus tard.",
76 en: 'Something went wrong, please try again later.',
77 es: 'No funcionó, por favor intente de nuevo más tarde.'
78 }
79};
80
81var submitHandler = function submitHandler(_ref) {
82 var lang = _ref.lang,
83 emailPasswordResetCall = _ref.emailPasswordResetCall,
84 setIsFinished = _ref.setIsFinished,
85 setIsLoading = _ref.setIsLoading,
86 setErrorMessage = _ref.setErrorMessage;
87 return (
88 /*#__PURE__*/
89 function () {
90 var _ref2 = _asyncToGenerator(
91 /*#__PURE__*/
92 regeneratorRuntime.mark(function _callee(e) {
93 var _formData, username;
94
95 return regeneratorRuntime.wrap(function _callee$(_context) {
96 while (1) {
97 switch (_context.prev = _context.next) {
98 case 0:
99 e.preventDefault();
100 _formData = (0, _formData2["default"])(e), username = _formData.username;
101 setIsLoading(true);
102 _context.next = 5;
103 return emailPasswordResetCall(username);
104
105 case 5:
106 if (!_context.sent) {
107 _context.next = 9;
108 break;
109 }
110
111 setIsFinished(true);
112 _context.next = 10;
113 break;
114
115 case 9:
116 setErrorMessage((0, _i18n.getTranslation)(translations, lang, 'call error message'));
117
118 case 10:
119 setIsLoading(false);
120
121 case 11:
122 case "end":
123 return _context.stop();
124 }
125 }
126 }, _callee);
127 }));
128
129 return function (_x) {
130 return _ref2.apply(this, arguments);
131 };
132 }()
133 );
134};
135
136var configLanguage = (0, _i18n.getLanguage)();
137
138var ForgottenPasswordPageJSX = function ForgottenPasswordPageJSX(_ref3) {
139 var _storyLanguage;
140
141 var css = _ref3.classes,
142 emailPasswordResetCall = _ref3.emailPasswordResetCall,
143 _ref3$loginPath = _ref3.loginPath,
144 loginPath = _ref3$loginPath === void 0 ? '' : _ref3$loginPath,
145 storyLanguage = _ref3.storyLanguage,
146 isNeutral = _ref3.isNeutral;
147 var lang = (_storyLanguage = storyLanguage) !== null && _storyLanguage !== void 0 ? _storyLanguage : configLanguage;
148
149 var _useState = (0, _react.useState)(null),
150 _useState2 = _slicedToArray(_useState, 2),
151 errorMessage = _useState2[0],
152 setErrorMessage = _useState2[1];
153
154 var _useState3 = (0, _react.useState)(false),
155 _useState4 = _slicedToArray(_useState3, 2),
156 isFinished = _useState4[0],
157 setIsFinished = _useState4[1];
158
159 var _useState5 = (0, _react.useState)(false),
160 _useState6 = _slicedToArray(_useState5, 2),
161 isLoading = _useState6[0],
162 setIsLoading = _useState6[1];
163
164 return _react["default"].createElement(_Page["default"], {
165 noPaper: true,
166 middle: true,
167 paperClass: css.container
168 }, _react["default"].createElement("div", {
169 style: {
170 textAlign: 'center',
171 width: '90%',
172 maxWidth: 300
173 }
174 }, (0, _cond["default"])([[isFinished, function () {
175 return _react["default"].createElement("div", null, (0, _i18n.getTranslation)(translations, lang, 'reset password email sent'));
176 }], [isLoading, function () {
177 return _react["default"].createElement(_CircularProgress["default"], null);
178 }]], function () {
179 return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_Typography["default"], {
180 variant: "h1",
181 style: {
182 marginBottom: 24
183 }
184 }, (0, _i18n.getTranslation)(translations, lang, 'forgotten password')), errorMessage && _react["default"].createElement(_Typography["default"], {
185 color: "error",
186 style: {
187 margin: '20px 0'
188 }
189 }, errorMessage), _react["default"].createElement("form", {
190 style: {
191 marginTop: 60,
192 marginBottom: 40
193 },
194 onSubmit: submitHandler({
195 emailPasswordResetCall: emailPasswordResetCall,
196 setErrorMessage: setErrorMessage,
197 setIsFinished: setIsFinished,
198 setIsLoading: setIsLoading,
199 lang: lang
200 })
201 }, _react["default"].createElement(_TextField["default"], {
202 label: (0, _i18n.getTranslation)(translations, lang, 'email or username'),
203 name: "username",
204 style: {
205 marginBottom: 20
206 },
207 required: true
208 }), _react["default"].createElement("br", null), _react["default"].createElement(_CustomButton["default"], {
209 colorType: !isNeutral ? 'primary' : 'secondary',
210 height: "short",
211 variant: "contained",
212 type: "submit",
213 style: {
214 marginTop: 10
215 }
216 }, (0, _i18n.getTranslation)(translations, lang, 'reset password'))), _react["default"].createElement(_Typography["default"], {
217 variant: "body1",
218 color: !isNeutral ? 'primary' : 'secondary'
219 }, _react["default"].createElement(_Link["default"], {
220 to: loginPath,
221 style: {
222 color: 'inherit'
223 }
224 }, (0, _i18n.getTranslation)(translations, lang, 'back to login page'))));
225 })));
226};
227
228ForgottenPasswordPageJSX.propTypes = {
229 classes: _propTypes["default"].object.isRequired,
230 emailPasswordResetCall: _propTypes["default"].func.isRequired,
231 loginPath: _propTypes["default"].string,
232 storyLanguage: _propTypes["default"].string,
233 isNeutral: _propTypes["default"].bool.isRequired
234};
235var ForgottenPasswordPage = (0, _withStyles["default"])({
236 container: {
237 display: 'flex',
238 alignItems: 'center',
239 justifyContent: 'center',
240 width: '100%'
241 }
242})(ForgottenPasswordPageJSX);
243var _default = ForgottenPasswordPage;
244exports["default"] = _default;
\No newline at end of file