清理死代码:sidepanel-view.jsx里被chapterOneViews短路掉的旧版登录/注册/找回密码分支
不是功能修复,纯清理。sidepanel-view.jsx的render()方法开头(chapterOneViews数组
含'login'/'register'/'reset'等)已经对这些view值提前return真实对接后端的
AuthOnboardingView。但同一个render()方法下半部分的三元表达式链里,还留着一份基于
view==='login'/'register'/'reset'的旧分支,分别渲染LoginView/CreateAccountView/
PasswordResetView——由于上面的提前return,这三个view值永远不可能落到这里,是无法
触达的死代码。
确认方式:全仓库搜索确认SidepanelView只有tinode-web.jsx一处渲染入口,其view prop
(state={this.state.sidePanelSelected})只能来自handleHashRoute对SIDE_PANEL_VIEWS
白名单的校验结果——'login'/'register'/'reset'确实在这个白名单里(否则连
sidePanelSelected都设置不了),但chapterOneViews这个子集在render()内部的检查顺序
必然先于旧分支执行,所以旧分支不可能被触达。
删除范围:三个旧分支的JSX(对应import的LoginView/CreateAccountView懒加载/
PasswordResetView懒加载)+ 三个组件源文件本身(login-view.jsx/create-account-view.jsx/
password-reset-view.jsx,删除引用后确认全仓库不含任何其它referrer)+ 两个文件对应的
已生成umd构建产物(webpack不会自动清理不再产出的旧chunk文件,这两个是被删除源文件
遗留下来的孤儿产物)。'cred'分支(ValidationView,不在chapterOneViews里,仍在真实使用)
未改动。defineMessages里对应的login/register/reset翻译key本次未删——它们现在也
无法被messages[view]这条动态查找命中,但涉及i18n提取产物的联动改动超出这次清理范围,
如实记录,未处理。
验证:npm run build:dev干净通过(三个旧chunk不再产出);真实浏览器完整走了一遍
登录(已有账号)/注册(全新手机号)/找回密码(重置刚注册账号的密码,重置后用新密码
重新登录成功)三条流程,均无回归。
This commit is contained in:
+52
-232
@@ -13244,141 +13244,6 @@ function GroupManagementView({
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/views/login-view.jsx":
|
||||
/*!**********************************!*\
|
||||
!*** ./src/views/login-view.jsx ***!
|
||||
\**********************************/
|
||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||
/* harmony export */ "default": function() { return /* binding */ LoginView; }
|
||||
/* harmony export */ });
|
||||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
||||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-intl */ "react-intl");
|
||||
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_1__);
|
||||
/* harmony import */ var _widgets_checkbox_jsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../widgets/checkbox.jsx */ "./src/widgets/checkbox.jsx");
|
||||
/* harmony import */ var _widgets_visible_password_jsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../widgets/visible-password.jsx */ "./src/widgets/visible-password.jsx");
|
||||
/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ "./node_modules/react/jsx-dev-runtime.js");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class LoginView extends (react__WEBPACK_IMPORTED_MODULE_0___default().Component) {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
login: props.login,
|
||||
password: '',
|
||||
hostName: props.serverAddress,
|
||||
saveToken: props.persist
|
||||
};
|
||||
this.handleLoginChange = this.handleLoginChange.bind(this);
|
||||
this.handlePasswordChange = this.handlePasswordChange.bind(this);
|
||||
this.handleToggleSaveToken = this.handleToggleSaveToken.bind(this);
|
||||
this.handleSubmit = this.handleSubmit.bind(this);
|
||||
}
|
||||
handleLoginChange(e) {
|
||||
this.setState({
|
||||
login: e.target.value
|
||||
});
|
||||
}
|
||||
handlePasswordChange(e) {
|
||||
this.setState({
|
||||
password: e.target.value
|
||||
});
|
||||
}
|
||||
handleToggleSaveToken() {
|
||||
this.props.onPersistenceChange(!this.state.saveToken);
|
||||
this.setState({
|
||||
saveToken: !this.state.saveToken
|
||||
});
|
||||
}
|
||||
handleSubmit(e) {
|
||||
e.preventDefault();
|
||||
this.props.onLogin(this.state.login.trim(), this.state.password.trim());
|
||||
}
|
||||
render() {
|
||||
let submitClasses = 'primary';
|
||||
if (this.props.disabled) {
|
||||
submitClasses += ' disabled';
|
||||
}
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)("form", {
|
||||
id: "login-form",
|
||||
onSubmit: this.handleSubmit,
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "login_prompt",
|
||||
defaultMessage: "Login",
|
||||
description: "Placeholer for username/login",
|
||||
children: login_prompt => (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)("input", {
|
||||
type: "text",
|
||||
id: "inputLogin",
|
||||
placeholder: login_prompt,
|
||||
autoComplete: "username",
|
||||
autoCorrect: "off",
|
||||
autoCapitalize: "none",
|
||||
value: this.state.login,
|
||||
onChange: this.handleLoginChange,
|
||||
required: true,
|
||||
autoFocus: true
|
||||
}, void 0, false)
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "password_prompt",
|
||||
defaultMessage: "Password",
|
||||
description: "Placeholder/prompt for entering password",
|
||||
children: password_prompt => (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(_widgets_visible_password_jsx__WEBPACK_IMPORTED_MODULE_3__["default"], {
|
||||
type: "password",
|
||||
id: "inputPassword",
|
||||
placeholder: password_prompt,
|
||||
autoComplete: "current-password",
|
||||
value: this.state.password,
|
||||
onChange: this.handlePasswordChange,
|
||||
required: true
|
||||
}, void 0, false)
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(_widgets_checkbox_jsx__WEBPACK_IMPORTED_MODULE_2__["default"], {
|
||||
id: "save-token",
|
||||
name: "save-token",
|
||||
checked: this.state.saveToken,
|
||||
onChange: this.handleToggleSaveToken
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)("label", {
|
||||
htmlFor: "save-token",
|
||||
children: ["\xA0", (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "stay_logged_in",
|
||||
defaultMessage: "Stay logged in",
|
||||
description: "Label for a checkbox"
|
||||
}, void 0, false)]
|
||||
}, void 0, true), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)("a", {
|
||||
href: "#reset",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "forgot_password_link",
|
||||
defaultMessage: "Forgot password?",
|
||||
description: "Link to Reset password form"
|
||||
}, void 0, false)
|
||||
}, void 0, false)]
|
||||
}, void 0, true), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)("div", {
|
||||
className: "dialog-buttons",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)("button", {
|
||||
className: submitClasses,
|
||||
type: "submit",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "button_sign_in",
|
||||
defaultMessage: "Sign in",
|
||||
description: "Button [Sign In]"
|
||||
}, void 0, false)
|
||||
}, void 0, false)
|
||||
}, void 0, false)]
|
||||
}, void 0, true);
|
||||
}
|
||||
}
|
||||
;
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/views/message-center-view.jsx":
|
||||
/*!*******************************************!*\
|
||||
!*** ./src/views/message-center-view.jsx ***!
|
||||
@@ -17546,11 +17411,10 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _acc_general_view_jsx__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./acc-general-view.jsx */ "./src/views/acc-general-view.jsx");
|
||||
/* harmony import */ var _acc_notifications_view_jsx__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./acc-notifications-view.jsx */ "./src/views/acc-notifications-view.jsx");
|
||||
/* harmony import */ var _acc_support_view_jsx__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./acc-support-view.jsx */ "./src/views/acc-support-view.jsx");
|
||||
/* harmony import */ var _login_view_jsx__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./login-view.jsx */ "./src/views/login-view.jsx");
|
||||
/* harmony import */ var _new_topic_view_jsx__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./new-topic-view.jsx */ "./src/views/new-topic-view.jsx");
|
||||
/* harmony import */ var _settings_view_jsx__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./settings-view.jsx */ "./src/views/settings-view.jsx");
|
||||
/* harmony import */ var _validation_view_jsx__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./validation-view.jsx */ "./src/views/validation-view.jsx");
|
||||
/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! react/jsx-dev-runtime */ "./node_modules/react/jsx-dev-runtime.js");
|
||||
/* harmony import */ var _new_topic_view_jsx__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./new-topic-view.jsx */ "./src/views/new-topic-view.jsx");
|
||||
/* harmony import */ var _settings_view_jsx__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./settings-view.jsx */ "./src/views/settings-view.jsx");
|
||||
/* harmony import */ var _validation_view_jsx__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./validation-view.jsx */ "./src/views/validation-view.jsx");
|
||||
/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! react/jsx-dev-runtime */ "./node_modules/react/jsx-dev-runtime.js");
|
||||
|
||||
|
||||
|
||||
@@ -17568,17 +17432,14 @@ __webpack_require__.r(__webpack_exports__);
|
||||
|
||||
|
||||
|
||||
const AccountSettingsView = react__WEBPACK_IMPORTED_MODULE_0___default().lazy(_ => Promise.all(/*! import() */[__webpack_require__.e("vendors-node_modules_libphonenumber-js_mobile_exports_parsePhoneNumberWithError_js"), __webpack_require__.e("vendors-node_modules_libphonenumber-js_examples_mobile_json_js-node_modules_libphonenumber-js-883e54"), __webpack_require__.e("src_widgets_phone-edit_jsx"), __webpack_require__.e("src_views_account-settings-view_jsx")]).then(__webpack_require__.bind(__webpack_require__, /*! ./account-settings-view.jsx */ "./src/views/account-settings-view.jsx")));
|
||||
const AccountSettingsView = react__WEBPACK_IMPORTED_MODULE_0___default().lazy(_ => Promise.all(/*! import() */[__webpack_require__.e("vendors-node_modules_libphonenumber-js_mobile_exports_parsePhoneNumberWithError_js"), __webpack_require__.e("vendors-node_modules_libphonenumber-js_examples_mobile_json_js-node_modules_libphonenumber-js-883e54"), __webpack_require__.e("src_views_account-settings-view_jsx")]).then(__webpack_require__.bind(__webpack_require__, /*! ./account-settings-view.jsx */ "./src/views/account-settings-view.jsx")));
|
||||
|
||||
const CreateAccountView = react__WEBPACK_IMPORTED_MODULE_0___default().lazy(_ => Promise.all(/*! import() */[__webpack_require__.e("vendors-node_modules_libphonenumber-js_mobile_exports_parsePhoneNumberWithError_js"), __webpack_require__.e("vendors-node_modules_libphonenumber-js_examples_mobile_json_js-node_modules_libphonenumber-js-883e54"), __webpack_require__.e("src_widgets_phone-edit_jsx"), __webpack_require__.e("src_views_create-account-view_jsx")]).then(__webpack_require__.bind(__webpack_require__, /*! ./create-account-view.jsx */ "./src/views/create-account-view.jsx")));
|
||||
|
||||
|
||||
const AccSecurityView = react__WEBPACK_IMPORTED_MODULE_0___default().lazy(_ => __webpack_require__.e(/*! import() */ "src_views_acc-security-view_jsx").then(__webpack_require__.bind(__webpack_require__, /*! ./acc-security-view.jsx */ "./src/views/acc-security-view.jsx")));
|
||||
|
||||
|
||||
|
||||
const PasswordResetView = react__WEBPACK_IMPORTED_MODULE_0___default().lazy(_ => Promise.all(/*! import() */[__webpack_require__.e("vendors-node_modules_libphonenumber-js_mobile_exports_parsePhoneNumberWithError_js"), __webpack_require__.e("vendors-node_modules_libphonenumber-js_examples_mobile_json_js-node_modules_libphonenumber-js-883e54"), __webpack_require__.e("src_widgets_phone-edit_jsx"), __webpack_require__.e("src_views_password-reset-view_jsx")]).then(__webpack_require__.bind(__webpack_require__, /*! ./password-reset-view.jsx */ "./src/views/password-reset-view.jsx")));
|
||||
|
||||
|
||||
|
||||
const WallpapersView = react__WEBPACK_IMPORTED_MODULE_0___default().lazy(_ => __webpack_require__.e(/*! import() */ "src_views_wallpapers_jsx").then(__webpack_require__.bind(__webpack_require__, /*! ./wallpapers.jsx */ "./src/views/wallpapers.jsx")));
|
||||
@@ -17679,10 +17540,10 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
const view = this.props.state || (this.props.myUserId ? 'messages-home' : 'tenant');
|
||||
const chapterOneViews = ['tenant', 'login', 'enterprise-register', 'enterprise-feedback', 'register', 'reset', 'identity-check', 'realname', 'realname-verified', 'realname-reminder', 'independent-password'];
|
||||
if (chapterOneViews.includes(view)) {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
id: "sidepanel",
|
||||
className: "auth-onboarding-panel",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_auth_onboarding_view_jsx__WEBPACK_IMPORTED_MODULE_6__["default"], {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_auth_onboarding_view_jsx__WEBPACK_IMPORTED_MODULE_6__["default"], {
|
||||
view: view,
|
||||
hashParams: this.props.hashParams,
|
||||
authenticated: !!this.props.myUserId,
|
||||
@@ -17703,17 +17564,17 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
const chapterTwoViews = ['messages-home', 'messages-offline', 'messages-menu', 'message-actions', 'system-messages'];
|
||||
if (chapterTwoViews.includes(view)) {
|
||||
const fullPage = !this.props.myUserId || view !== 'messages-home';
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
id: "sidepanel",
|
||||
className: 'message-center-panel' + (fullPage ? ' full-page' : ''),
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_message_center_view_jsx__WEBPACK_IMPORTED_MODULE_7__["default"], {
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_message_center_view_jsx__WEBPACK_IMPORTED_MODULE_7__["default"], {
|
||||
view: view,
|
||||
connected: this.props.connected,
|
||||
chatList: this.props.chatList,
|
||||
myUserId: this.props.myUserId,
|
||||
onTopicSelected: this.props.onTopicSelected,
|
||||
onOpenScanner: this.props.onOpenScanner
|
||||
}, view, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_widgets_error_panel_jsx__WEBPACK_IMPORTED_MODULE_2__["default"], {
|
||||
}, view, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_widgets_error_panel_jsx__WEBPACK_IMPORTED_MODULE_2__["default"], {
|
||||
level: this.props.errorLevel,
|
||||
text: this.props.errorText,
|
||||
action: this.props.errorAction,
|
||||
@@ -17724,28 +17585,28 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
}
|
||||
const chapterThreeViews = ['chat-inbound-request', 'chat-inbound-message', 'chat-outbound-request', 'chat-status', 'chat-friend', 'chat-media', 'chat-blocked', 'chat-deleted', 'chat-standard', 'chat-attachments', 'chat-mixed', 'chat-contact-card'];
|
||||
if (chapterThreeViews.includes(view)) {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
id: "sidepanel",
|
||||
className: "direct-message-panel",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_direct_message_view_jsx__WEBPACK_IMPORTED_MODULE_8__["default"], {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_direct_message_view_jsx__WEBPACK_IMPORTED_MODULE_8__["default"], {
|
||||
view: view
|
||||
}, view, false)
|
||||
}, void 0, false);
|
||||
}
|
||||
if (_message_composer_view_jsx__WEBPACK_IMPORTED_MODULE_9__.MESSAGE_COMPOSER_VIEWS.includes(view)) {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
id: "sidepanel",
|
||||
className: "message-composer-panel",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_message_composer_view_jsx__WEBPACK_IMPORTED_MODULE_9__["default"], {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_message_composer_view_jsx__WEBPACK_IMPORTED_MODULE_9__["default"], {
|
||||
view: view
|
||||
}, view, false)
|
||||
}, void 0, false);
|
||||
}
|
||||
if (_contact_management_view_jsx__WEBPACK_IMPORTED_MODULE_10__.CONTACT_MANAGEMENT_VIEWS.includes(view)) {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
id: "sidepanel",
|
||||
className: "contact-management-panel",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_contact_management_view_jsx__WEBPACK_IMPORTED_MODULE_10__["default"], {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_contact_management_view_jsx__WEBPACK_IMPORTED_MODULE_10__["default"], {
|
||||
view: view,
|
||||
hashParams: this.props.hashParams,
|
||||
myUserId: this.props.myUserId,
|
||||
@@ -17757,10 +17618,10 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
}, void 0, false);
|
||||
}
|
||||
if (_group_management_view_jsx__WEBPACK_IMPORTED_MODULE_11__.GROUP_MANAGEMENT_VIEWS.includes(view)) {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
id: "sidepanel",
|
||||
className: "group-management-panel",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_group_management_view_jsx__WEBPACK_IMPORTED_MODULE_11__["default"], {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_group_management_view_jsx__WEBPACK_IMPORTED_MODULE_11__["default"], {
|
||||
view: view,
|
||||
hashParams: this.props.hashParams,
|
||||
myUserId: this.props.myUserId,
|
||||
@@ -17770,10 +17631,10 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
}, void 0, false);
|
||||
}
|
||||
if (_content_library_view_jsx__WEBPACK_IMPORTED_MODULE_12__.CONTENT_LIBRARY_VIEWS.includes(view)) {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
id: "sidepanel",
|
||||
className: "content-library-panel",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_content_library_view_jsx__WEBPACK_IMPORTED_MODULE_12__["default"], {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_content_library_view_jsx__WEBPACK_IMPORTED_MODULE_12__["default"], {
|
||||
view: view,
|
||||
hashParams: this.props.hashParams,
|
||||
myUserId: this.props.myUserId,
|
||||
@@ -17784,19 +17645,19 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
}, void 0, false);
|
||||
}
|
||||
if (_call_experience_view_jsx__WEBPACK_IMPORTED_MODULE_13__.CALL_EXPERIENCE_VIEWS.includes(view)) {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
id: "sidepanel",
|
||||
className: "call-experience-panel",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_call_experience_view_jsx__WEBPACK_IMPORTED_MODULE_13__["default"], {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_call_experience_view_jsx__WEBPACK_IMPORTED_MODULE_13__["default"], {
|
||||
view: view
|
||||
}, view, false)
|
||||
}, void 0, false);
|
||||
}
|
||||
if (_workplace_collaboration_view_jsx__WEBPACK_IMPORTED_MODULE_14__.WORKPLACE_COLLABORATION_VIEWS.includes(view)) {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
id: "sidepanel",
|
||||
className: "workplace-collaboration-panel",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_workplace_collaboration_view_jsx__WEBPACK_IMPORTED_MODULE_14__["default"], {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_workplace_collaboration_view_jsx__WEBPACK_IMPORTED_MODULE_14__["default"], {
|
||||
view: view,
|
||||
hashParams: this.props.hashParams,
|
||||
myUserId: this.props.myUserId,
|
||||
@@ -17806,10 +17667,10 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
}, void 0, false);
|
||||
}
|
||||
if (_personal_settings_view_jsx__WEBPACK_IMPORTED_MODULE_15__.PERSONAL_SETTINGS_VIEWS.includes(view)) {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
id: "sidepanel",
|
||||
className: "personal-settings-panel",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_personal_settings_view_jsx__WEBPACK_IMPORTED_MODULE_15__["default"], {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_personal_settings_view_jsx__WEBPACK_IMPORTED_MODULE_15__["default"], {
|
||||
view: view,
|
||||
hashParams: this.props.hashParams,
|
||||
myUserId: this.props.myUserId,
|
||||
@@ -17822,10 +17683,10 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
}, void 0, false);
|
||||
}
|
||||
if (_security_support_view_jsx__WEBPACK_IMPORTED_MODULE_16__.SECURITY_SUPPORT_VIEWS.includes(view)) {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
id: "sidepanel",
|
||||
className: "security-support-panel",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_security_support_view_jsx__WEBPACK_IMPORTED_MODULE_16__["default"], {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_security_support_view_jsx__WEBPACK_IMPORTED_MODULE_16__["default"], {
|
||||
view: view,
|
||||
hashParams: this.props.hashParams,
|
||||
tinode: this.props.tinode
|
||||
@@ -17846,9 +17707,9 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
if (['login', 'contacts'].indexOf(view) == -1) {
|
||||
onCancel = this.props.onCancel;
|
||||
}
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
id: "sidepanel",
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_widgets_side_navbar_jsx__WEBPACK_IMPORTED_MODULE_4__["default"], {
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_widgets_side_navbar_jsx__WEBPACK_IMPORTED_MODULE_4__["default"], {
|
||||
state: view,
|
||||
title: title,
|
||||
avatar: avatar,
|
||||
@@ -17859,53 +17720,30 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
onSettings: this.props.onSettings,
|
||||
onNewTopic: this.handleNewTopic,
|
||||
onCancel: onCancel
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_widgets_error_panel_jsx__WEBPACK_IMPORTED_MODULE_2__["default"], {
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_widgets_error_panel_jsx__WEBPACK_IMPORTED_MODULE_2__["default"], {
|
||||
level: this.props.errorLevel,
|
||||
text: this.props.errorText,
|
||||
action: this.props.errorAction,
|
||||
actionText: this.props.errorActionText,
|
||||
onClearError: this.props.onError
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_widgets_load_spinner_jsx__WEBPACK_IMPORTED_MODULE_3__["default"], {
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_widgets_load_spinner_jsx__WEBPACK_IMPORTED_MODULE_3__["default"], {
|
||||
show: this.props.loadSpinnerVisible
|
||||
}, void 0, false), view === 'login' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_login_view_jsx__WEBPACK_IMPORTED_MODULE_21__["default"], {
|
||||
login: this.props.login,
|
||||
disabled: this.props.loginDisabled,
|
||||
persist: this.props.persist,
|
||||
onLogin: this.props.onLoginRequest,
|
||||
onPersistenceChange: this.props.onPersistenceChange
|
||||
}, void 0, false) : view === 'register' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_0__.Suspense, {
|
||||
fallback: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "loading_note",
|
||||
defaultMessage: "Loading...",
|
||||
description: "Message shown when component is loading"
|
||||
}, void 0, false)
|
||||
}, void 0, false),
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(CreateAccountView, {
|
||||
tinode: this.props.tinode,
|
||||
reqCredMethod: this.props.reqCredMethod,
|
||||
onShowCountrySelector: this.props.onShowCountrySelector,
|
||||
onCreateAccount: this.props.onCreateAccount,
|
||||
onCancel: this.props.onCancel,
|
||||
onError: this.props.onError
|
||||
}, void 0, false)
|
||||
}, void 0, false) : view === 'settings' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_settings_view_jsx__WEBPACK_IMPORTED_MODULE_23__["default"], {
|
||||
}, void 0, false), view === 'settings' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_settings_view_jsx__WEBPACK_IMPORTED_MODULE_22__["default"], {
|
||||
transport: this.props.transport,
|
||||
serverAddress: this.props.serverAddress,
|
||||
secureConnection: this.props.secureConnection,
|
||||
onCancel: this.props.onCancel,
|
||||
onUpdate: this.props.onGlobalSettings
|
||||
}, void 0, false) : view === 'edit' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_0__.Suspense, {
|
||||
fallback: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
}, void 0, false) : view === 'edit' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_0__.Suspense, {
|
||||
fallback: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "loading_note",
|
||||
defaultMessage: "Loading...",
|
||||
description: "Message shown when component is loading"
|
||||
}, void 0, false)
|
||||
}, void 0, false),
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(AccountSettingsView, {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(AccountSettingsView, {
|
||||
tinode: this.props.tinode,
|
||||
myUserId: this.props.myUserId,
|
||||
trustedBadges: this.props.trustedBadges,
|
||||
@@ -17917,7 +17755,7 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
onCredConfirm: this.props.onCredConfirm,
|
||||
onError: this.props.onError
|
||||
}, void 0, false)
|
||||
}, void 0, false) : view === 'general' || view === 'crop' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_topic_common_view_jsx__WEBPACK_IMPORTED_MODULE_5__["default"], {
|
||||
}, void 0, false) : view === 'general' || view === 'crop' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_topic_common_view_jsx__WEBPACK_IMPORTED_MODULE_5__["default"], {
|
||||
topic: "me",
|
||||
tinode: this.props.tinode,
|
||||
myUserId: this.props.myUserId,
|
||||
@@ -17925,7 +17763,7 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
onUpdateTopicDesc: this.props.onUpdateAccountDesc,
|
||||
onUpdateTagsRequest: this.props.onUpdateAccountTags,
|
||||
onError: this.props.onError
|
||||
}, void 0, false) : view === 'acc_general' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_acc_general_view_jsx__WEBPACK_IMPORTED_MODULE_18__["default"], {
|
||||
}, void 0, false) : view === 'acc_general' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_acc_general_view_jsx__WEBPACK_IMPORTED_MODULE_18__["default"], {
|
||||
colorSchema: this.props.colorSchema,
|
||||
onSelectWallpapers: this.props.onSelectWallpapers,
|
||||
textSize: this.props.textSize,
|
||||
@@ -17933,22 +17771,22 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
onChangeColorSchema: this.props.onChangeColorSchema,
|
||||
onTextSizeChanged: this.props.onTextSizeChanged,
|
||||
onSendOnEnterChanged: this.props.onSendOnEnterChanged
|
||||
}, void 0, false) : view === 'notif' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_acc_notifications_view_jsx__WEBPACK_IMPORTED_MODULE_19__["default"], {
|
||||
}, void 0, false) : view === 'notif' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_acc_notifications_view_jsx__WEBPACK_IMPORTED_MODULE_19__["default"], {
|
||||
messageSounds: this.props.messageSounds,
|
||||
desktopAlerts: this.props.desktopAlerts,
|
||||
desktopAlertsEnabled: this.props.desktopAlertsEnabled,
|
||||
onTogglePushNotifications: this.props.onTogglePushNotifications,
|
||||
onToggleMessageSounds: this.props.onToggleMessageSounds
|
||||
}, void 0, false) : view === 'security' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_0__.Suspense, {
|
||||
fallback: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
}, void 0, false) : view === 'security' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_0__.Suspense, {
|
||||
fallback: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "loading_note",
|
||||
defaultMessage: "Loading...",
|
||||
description: "Message shown when component is loading"
|
||||
}, void 0, false)
|
||||
}, void 0, false),
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(AccSecurityView, {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(AccSecurityView, {
|
||||
tinode: this.props.tinode,
|
||||
incognitoMode: this.props.incognitoMode,
|
||||
onNavigate: this.props.onNavigate,
|
||||
@@ -17960,26 +17798,26 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
onShowBlocked: this.props.onShowBlocked,
|
||||
onToggleIncognitoMode: this.props.onToggleIncognitoMode
|
||||
}, void 0, false)
|
||||
}, void 0, false) : view === 'support' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_acc_support_view_jsx__WEBPACK_IMPORTED_MODULE_20__["default"], {
|
||||
}, void 0, false) : view === 'support' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_acc_support_view_jsx__WEBPACK_IMPORTED_MODULE_20__["default"], {
|
||||
serverAddress: this.props.serverAddress,
|
||||
serverVersion: this.props.serverVersion
|
||||
}, void 0, false) : view === 'wallpapers' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_0__.Suspense, {
|
||||
fallback: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
}, void 0, false) : view === 'wallpapers' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_0__.Suspense, {
|
||||
fallback: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "loading_note",
|
||||
defaultMessage: "Loading...",
|
||||
description: "Message shown when component is loading"
|
||||
}, void 0, false)
|
||||
}, void 0, false),
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(WallpapersView, {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(WallpapersView, {
|
||||
wallpaper: this.props.wallpaper,
|
||||
wallpaperSize: this.props.wallpaperSize,
|
||||
wallpaperBlur: this.props.wallpaperBlur,
|
||||
colorSchema: this.props.colorSchema !== 'auto' ? this.props.colorSchema : this.props.systemColorSchema,
|
||||
onWallpaperSelected: this.props.onWallpaperSelected
|
||||
}, void 0, false)
|
||||
}, void 0, false) : view === 'contacts' || view == 'archive' || view == 'blocked' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_contacts_view_jsx__WEBPACK_IMPORTED_MODULE_17__["default"], {
|
||||
}, void 0, false) : view === 'contacts' || view == 'archive' || view == 'blocked' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_contacts_view_jsx__WEBPACK_IMPORTED_MODULE_17__["default"], {
|
||||
tinode: this.props.tinode,
|
||||
myUserId: this.props.myUserId,
|
||||
connected: this.props.connected,
|
||||
@@ -17990,37 +17828,19 @@ class SidepanelView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
|
||||
showContextMenu: this.props.showContextMenu,
|
||||
onTopicSelected: this.props.onTopicSelected,
|
||||
onShowArchive: this.props.onShowArchive
|
||||
}, void 0, false) : view === 'newtpk' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_new_topic_view_jsx__WEBPACK_IMPORTED_MODULE_22__["default"], {
|
||||
}, void 0, false) : view === 'newtpk' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_new_topic_view_jsx__WEBPACK_IMPORTED_MODULE_21__["default"], {
|
||||
tinode: this.props.tinode,
|
||||
searchResults: this.props.searchResults,
|
||||
onInitFind: this.props.onInitFind,
|
||||
onSearchContacts: this.props.onSearchContacts,
|
||||
onCreateTopic: this.props.onCreateTopic,
|
||||
onError: this.props.onError
|
||||
}, void 0, false) : view === 'cred' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(_validation_view_jsx__WEBPACK_IMPORTED_MODULE_24__["default"], {
|
||||
}, void 0, false) : view === 'cred' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_24__.jsxDEV)(_validation_view_jsx__WEBPACK_IMPORTED_MODULE_23__["default"], {
|
||||
credCode: this.props.credCode,
|
||||
credMethod: this.props.credMethod,
|
||||
credToken: this.props.credToken,
|
||||
onSubmit: this.props.onValidateCredentials,
|
||||
onCancel: this.props.onCancel
|
||||
}, void 0, false) : view === 'reset' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_0__.Suspense, {
|
||||
fallback: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "loading_note",
|
||||
defaultMessage: "Loading...",
|
||||
description: "Message shown when component is loading"
|
||||
}, void 0, false)
|
||||
}, void 0, false),
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_25__.jsxDEV)(PasswordResetView, {
|
||||
tinode: this.props.tinode,
|
||||
reqCredMethod: this.props.reqCredMethod,
|
||||
onShowCountrySelector: this.props.onShowCountrySelector,
|
||||
onRequest: this.props.onPasswordResetRequest,
|
||||
onReset: this.props.onResetPassword,
|
||||
onCancel: this.props.onCancel,
|
||||
onError: this.props.onError
|
||||
}, void 0, false)
|
||||
}, void 0, false) : null]
|
||||
}, void 0, true);
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,319 +0,0 @@
|
||||
"use strict";
|
||||
(self["webpackChunktinode_webapp"] = self["webpackChunktinode_webapp"] || []).push([["src_views_create-account-view_jsx"],{
|
||||
|
||||
/***/ "./src/views/create-account-view.jsx":
|
||||
/*!*******************************************!*\
|
||||
!*** ./src/views/create-account-view.jsx ***!
|
||||
\*******************************************/
|
||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||
/* harmony export */ "default": function() { return /* binding */ CreateAccountView; }
|
||||
/* harmony export */ });
|
||||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
||||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-intl */ "react-intl");
|
||||
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_1__);
|
||||
/* harmony import */ var _widgets_avatar_crop_jsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../widgets/avatar-crop.jsx */ "./src/widgets/avatar-crop.jsx");
|
||||
/* harmony import */ var _widgets_avatar_upload_jsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../widgets/avatar-upload.jsx */ "./src/widgets/avatar-upload.jsx");
|
||||
/* harmony import */ var _widgets_checkbox_jsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../widgets/checkbox.jsx */ "./src/widgets/checkbox.jsx");
|
||||
/* harmony import */ var _widgets_phone_edit_jsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../widgets/phone-edit.jsx */ "./src/widgets/phone-edit.jsx");
|
||||
/* harmony import */ var _widgets_visible_password_jsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../widgets/visible-password.jsx */ "./src/widgets/visible-password.jsx");
|
||||
/* harmony import */ var _lib_local_storage_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../lib/local-storage.js */ "./src/lib/local-storage.js");
|
||||
/* harmony import */ var _lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../lib/blob-helpers.js */ "./src/lib/blob-helpers.js");
|
||||
/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../lib/utils.js */ "./src/lib/utils.js");
|
||||
/* harmony import */ var _lib_strformat_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../lib/strformat.js */ "./src/lib/strformat.js");
|
||||
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../config.js */ "./src/config.js");
|
||||
/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-dev-runtime */ "./node_modules/react/jsx-dev-runtime.js");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class CreateAccountView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureComponent) {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
login: '',
|
||||
password: '',
|
||||
meth: '',
|
||||
email: '',
|
||||
tel: '',
|
||||
fn: '',
|
||||
imageUrl: null,
|
||||
uploadUrl: null,
|
||||
newAvatar: null,
|
||||
newAvatarMime: null,
|
||||
buttonDisabled: false,
|
||||
saveToken: _lib_local_storage_js__WEBPACK_IMPORTED_MODULE_7__["default"].getObject('keep-logged-in')
|
||||
};
|
||||
this.handleLoginChange = this.handleLoginChange.bind(this);
|
||||
this.handlePasswordChange = this.handlePasswordChange.bind(this);
|
||||
this.handleEmailChange = this.handleEmailChange.bind(this);
|
||||
this.handlePhoneChange = this.handlePhoneChange.bind(this);
|
||||
this.handleFnChange = this.handleFnChange.bind(this);
|
||||
this.handleImageChanged = this.handleImageChanged.bind(this);
|
||||
this.handleToggleSaveToken = this.handleToggleSaveToken.bind(this);
|
||||
this.handleAvatarCropped = this.handleAvatarCropped.bind(this);
|
||||
this.handleAvatarCropCancel = this.handleAvatarCropCancel.bind(this);
|
||||
this.uploadAvatar = this.uploadAvatar.bind(this);
|
||||
this.handleSubmit = this.handleSubmit.bind(this);
|
||||
props.tinode.connect().catch(err => {
|
||||
this.props.onError(err.message, 'err');
|
||||
});
|
||||
}
|
||||
handleLoginChange(e) {
|
||||
this.setState({
|
||||
login: e.target.value
|
||||
});
|
||||
}
|
||||
handlePasswordChange(password) {
|
||||
this.setState({
|
||||
password: password
|
||||
});
|
||||
}
|
||||
handleEmailChange(e) {
|
||||
this.setState({
|
||||
meth: 'email',
|
||||
email: e.target.value
|
||||
});
|
||||
}
|
||||
handlePhoneChange(number) {
|
||||
this.setState({
|
||||
meth: 'tel',
|
||||
tel: number
|
||||
});
|
||||
}
|
||||
handleFnChange(e) {
|
||||
this.setState({
|
||||
fn: e.target.value
|
||||
});
|
||||
}
|
||||
handleImageChanged(mime, img) {
|
||||
this.setState({
|
||||
newAvatar: img,
|
||||
newAvatarMime: mime
|
||||
});
|
||||
if (!img) {
|
||||
this.setState({
|
||||
imageUrl: null,
|
||||
uploadUrl: null
|
||||
});
|
||||
}
|
||||
}
|
||||
handleToggleSaveToken() {
|
||||
_lib_local_storage_js__WEBPACK_IMPORTED_MODULE_7__["default"].setObject('keep-logged-in', !this.state.saveToken);
|
||||
this.setState({
|
||||
saveToken: !this.state.saveToken
|
||||
});
|
||||
}
|
||||
handleSubmit(e) {
|
||||
e.preventDefault();
|
||||
this.props.onCreateAccount(this.state.login.trim(), this.state.password.trim(), (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_9__.theCard)((0,_lib_strformat_js__WEBPACK_IMPORTED_MODULE_10__.truncateString)(this.state.fn.trim(), _config_js__WEBPACK_IMPORTED_MODULE_11__.MAX_TITLE_LENGTH), this.state.uploadUrl), {
|
||||
'meth': this.state.meth,
|
||||
'val': this.state.meth == 'email' ? this.state.email : this.state.meth == 'tel' ? this.state.tel : null
|
||||
});
|
||||
}
|
||||
handleAvatarCropped(mime, blob, width, height) {
|
||||
const url = blob ? URL.createObjectURL(blob) : null;
|
||||
this.setState({
|
||||
newAvatar: null,
|
||||
newAvatarMime: null
|
||||
});
|
||||
if (blob) {
|
||||
this.uploadAvatar(mime, blob, width, height);
|
||||
}
|
||||
}
|
||||
handleAvatarCropCancel() {
|
||||
this.setState({
|
||||
newAvatar: null,
|
||||
newAvatarMime: null
|
||||
});
|
||||
}
|
||||
uploadAvatar(mime, blob, width, height) {
|
||||
const readyToUpload = image => {
|
||||
let {
|
||||
mime,
|
||||
blob
|
||||
} = image;
|
||||
this.setState({
|
||||
imageUrl: URL.createObjectURL(blob),
|
||||
buttonDisabled: true
|
||||
});
|
||||
if (blob.size > _config_js__WEBPACK_IMPORTED_MODULE_11__.MAX_AVATAR_BYTES) {
|
||||
const uploader = this.props.tinode.getLargeFileHelper();
|
||||
uploader.upload(blob, 'newacc').then(url => this.setState({
|
||||
uploadUrl: url
|
||||
})).catch(err => this.props.onError(err.message, 'err')).finally(_ => this.setState({
|
||||
buttonDisabled: false
|
||||
}));
|
||||
} else {
|
||||
(0,_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_8__.blobToBase64)(blob).then(b64 => this.setState({
|
||||
uploadUrl: (0,_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_8__.makeImageUrl)({
|
||||
data: b64.bits,
|
||||
type: mime
|
||||
})
|
||||
})).finally(_ => this.setState({
|
||||
buttonDisabled: false
|
||||
}));
|
||||
}
|
||||
};
|
||||
if (width > _config_js__WEBPACK_IMPORTED_MODULE_11__.AVATAR_SIZE || height > _config_js__WEBPACK_IMPORTED_MODULE_11__.AVATAR_SIZE || width != height) {
|
||||
(0,_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_8__.imageScaled)(blob, _config_js__WEBPACK_IMPORTED_MODULE_11__.AVATAR_SIZE, _config_js__WEBPACK_IMPORTED_MODULE_11__.AVATAR_SIZE, _config_js__WEBPACK_IMPORTED_MODULE_11__.MAX_EXTERN_ATTACHMENT_SIZE, true).then(scaled => readyToUpload(scaled)).catch(err => this.props.onError(err.message, 'err'));
|
||||
} else {
|
||||
readyToUpload({
|
||||
mime: mime,
|
||||
blob: blob,
|
||||
width: width,
|
||||
height: height
|
||||
});
|
||||
}
|
||||
}
|
||||
render() {
|
||||
if (this.state.newAvatar) {
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_widgets_avatar_crop_jsx__WEBPACK_IMPORTED_MODULE_2__["default"], {
|
||||
avatar: this.state.newAvatar,
|
||||
mime: this.state.newAvatarMime,
|
||||
onSubmit: this.handleAvatarCropped,
|
||||
onCancel: this.handleAvatarCropCancel,
|
||||
onError: this.props.onError
|
||||
}, void 0, false);
|
||||
}
|
||||
let submitClasses = 'primary';
|
||||
if (this.props.disabled) {
|
||||
submitClasses += ' disabled';
|
||||
}
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("form", {
|
||||
className: "panel-form-column",
|
||||
onSubmit: this.handleSubmit,
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("div", {
|
||||
className: "umn",
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "login_prompt",
|
||||
defaultMessage: "Login",
|
||||
description: "Placeholer for username/login",
|
||||
children: login_prompt => (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("input", {
|
||||
type: "text",
|
||||
placeholder: login_prompt,
|
||||
autoComplete: "user-name",
|
||||
value: this.state.login,
|
||||
onChange: this.handleLoginChange,
|
||||
required: true,
|
||||
autoFocus: true
|
||||
}, void 0, false)
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "password_prompt",
|
||||
defaultMessage: "Password",
|
||||
description: "Placeholder/prompt for entering password",
|
||||
children: password_prompt => (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_widgets_visible_password_jsx__WEBPACK_IMPORTED_MODULE_6__["default"], {
|
||||
placeholder: password_prompt,
|
||||
autoComplete: "new-password",
|
||||
value: this.state.password,
|
||||
onFinished: this.handlePasswordChange,
|
||||
required: true
|
||||
}, void 0, false)
|
||||
}, void 0, false)]
|
||||
}, void 0, true), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_widgets_avatar_upload_jsx__WEBPACK_IMPORTED_MODULE_3__["default"], {
|
||||
tinode: this.props.tinode,
|
||||
avatar: this.state.imageUrl,
|
||||
onImageUpdated: this.handleImageChanged,
|
||||
onError: this.props.onError
|
||||
}, void 0, false)]
|
||||
}, void 0, true), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "full_name_prompt",
|
||||
defaultMessage: "Full name, e.g. John Doe",
|
||||
description: "Input placeholder for person's full name",
|
||||
children: full_name_prompt => (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("input", {
|
||||
type: "text",
|
||||
placeholder: full_name_prompt,
|
||||
autoComplete: "name",
|
||||
value: this.state.fn,
|
||||
onChange: this.handleFnChange,
|
||||
required: true
|
||||
}, void 0, false)
|
||||
}, void 0, false)
|
||||
}, void 0, false), this.props.reqCredMethod == 'email' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "email_prompt",
|
||||
defaultMessage: "Email, e.g. jdoe@example.com",
|
||||
description: "Input placeholder for email entry",
|
||||
children: email_prompt => (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("input", {
|
||||
type: "email",
|
||||
placeholder: email_prompt,
|
||||
autoComplete: "email",
|
||||
value: this.state.email,
|
||||
onChange: this.handleEmailChange,
|
||||
required: true
|
||||
}, void 0, false)
|
||||
}, void 0, false)
|
||||
}, void 0, false) : this.props.reqCredMethod == 'tel' ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.Fragment, {
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("label", {
|
||||
className: "small gray",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "mobile_phone_number",
|
||||
defaultMessage: "Mobile phone number",
|
||||
description: "Prompt for entering a mobile phone number"
|
||||
}, void 0, false)
|
||||
}, void 0, false)
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_widgets_phone_edit_jsx__WEBPACK_IMPORTED_MODULE_5__["default"], {
|
||||
autoFocus: false,
|
||||
onShowCountrySelector: this.props.onShowCountrySelector,
|
||||
onSubmit: this.handlePhoneChange
|
||||
}, void 0, false)
|
||||
}, void 0, false)]
|
||||
}, void 0, true) : null, (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(_widgets_checkbox_jsx__WEBPACK_IMPORTED_MODULE_4__["default"], {
|
||||
id: "save-token",
|
||||
name: "save-token",
|
||||
checked: this.state.saveToken,
|
||||
onChange: this.handleToggleSaveToken
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "stay_logged_in",
|
||||
defaultMessage: "Stay logged in",
|
||||
description: "Label for a checkbox",
|
||||
children: stay_logged_in => (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("label", {
|
||||
htmlFor: "save-token",
|
||||
children: ["\xA0", stay_logged_in]
|
||||
}, void 0, true)
|
||||
}, void 0, false)]
|
||||
}, void 0, true), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("div", {
|
||||
className: "dialog-buttons",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)("button", {
|
||||
className: submitClasses,
|
||||
type: "submit",
|
||||
disabled: this.state.buttonDisabled,
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "button_sign_up",
|
||||
defaultMessage: "Sign up",
|
||||
description: "Create account button [Sign Up]"
|
||||
}, void 0, false)
|
||||
}, void 0, false)
|
||||
}, void 0, false)]
|
||||
}, void 0, true);
|
||||
}
|
||||
}
|
||||
;
|
||||
|
||||
/***/ })
|
||||
|
||||
}]);
|
||||
//# sourceMappingURL=src_views_create-account-view_jsx.dev.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -1,276 +0,0 @@
|
||||
"use strict";
|
||||
(self["webpackChunktinode_webapp"] = self["webpackChunktinode_webapp"] || []).push([["src_views_password-reset-view_jsx"],{
|
||||
|
||||
/***/ "./src/views/password-reset-view.jsx":
|
||||
/*!*******************************************!*\
|
||||
!*** ./src/views/password-reset-view.jsx ***!
|
||||
\*******************************************/
|
||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
||||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-intl */ "react-intl");
|
||||
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intl__WEBPACK_IMPORTED_MODULE_1__);
|
||||
/* harmony import */ var _widgets_phone_edit_jsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../widgets/phone-edit.jsx */ "./src/widgets/phone-edit.jsx");
|
||||
/* harmony import */ var _widgets_visible_password_jsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../widgets/visible-password.jsx */ "./src/widgets/visible-password.jsx");
|
||||
/* harmony import */ var _lib_navigation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../lib/navigation.js */ "./src/lib/navigation.js");
|
||||
/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-dev-runtime */ "./node_modules/react/jsx-dev-runtime.js");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const messages = (0,react_intl__WEBPACK_IMPORTED_MODULE_1__.defineMessages)({
|
||||
password_reset_email_sent: {
|
||||
id: 'password_reset_email_sent',
|
||||
defaultMessage: 'An email with security code has been sent.',
|
||||
description: 'Notification that the email with password reset instructions has been sent'
|
||||
},
|
||||
password_reset_sms_sent: {
|
||||
id: 'password_reset_sms_sent',
|
||||
defaultMessage: 'A text message with security code has been sent.',
|
||||
description: 'Notification that the SMS with password reset instructions has been sent'
|
||||
}
|
||||
});
|
||||
class PasswordResetView extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureComponent) {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
tel: '',
|
||||
email: '',
|
||||
password: '',
|
||||
sent: false,
|
||||
haveCode: false,
|
||||
code: ''
|
||||
};
|
||||
this.handleSubmit = this.handleSubmit.bind(this);
|
||||
this.handleEmailChange = this.handleEmailChange.bind(this);
|
||||
this.handlePasswordChange = this.handlePasswordChange.bind(this);
|
||||
this.handleCodeChange = this.handleCodeChange.bind(this);
|
||||
this.handleShowCodeField = this.handleShowCodeField.bind(this);
|
||||
props.tinode.connect().catch(err => {
|
||||
this.props.onError(err.message, 'err');
|
||||
});
|
||||
}
|
||||
componentDidMount() {
|
||||
const parsed = _lib_navigation_js__WEBPACK_IMPORTED_MODULE_4__["default"].parseUrlHash(window.location.hash);
|
||||
const newState = {
|
||||
token: parsed.params.token,
|
||||
scheme: parsed.params.scheme,
|
||||
code: parsed.params.code || ''
|
||||
};
|
||||
this.savedCred = parsed.params.cred;
|
||||
if (this.props.reqCredMethod && parsed.params.cred) {
|
||||
newState[this.props.reqCredMethod] = this.savedCred;
|
||||
}
|
||||
this.setState(newState);
|
||||
}
|
||||
componentDidUpdate(prevProps, prevState) {
|
||||
if (prevProps.reqCredMethod != this.props.reqCredMethod && this.props.reqCredMethod) {
|
||||
this.setState({
|
||||
[this.props.reqCredMethod]: this.savedCred || ''
|
||||
});
|
||||
}
|
||||
}
|
||||
handleSubmit(e) {
|
||||
e.preventDefault();
|
||||
if (this.state.token) {
|
||||
this.props.onReset(this.state.password.trim(), {
|
||||
scheme: 'token',
|
||||
secret: this.state.token
|
||||
});
|
||||
} else if (this.state.code && this.props.reqCredMethod) {
|
||||
const cred = this.props.reqCredMethod == 'email' ? this.state.email.trim() : this.state.tel.trim();
|
||||
this.props.onReset(this.state.password.trim(), {
|
||||
scheme: 'code',
|
||||
secret: btoa(`${this.state.code}:${this.props.reqCredMethod}:${cred}`)
|
||||
});
|
||||
} else {
|
||||
const email = this.state.email.trim();
|
||||
const tel = this.state.tel.trim();
|
||||
this.setState({
|
||||
email: email,
|
||||
tel: tel
|
||||
});
|
||||
this.props.onRequest(this.props.reqCredMethod, email || tel).then(_ => {
|
||||
this.setState({
|
||||
sent: true
|
||||
});
|
||||
const msg = this.props.reqCredMethod == 'email' ? messages.password_reset_email_sent : this.props.reqCredMethod == 'tel' ? messages.password_reset_sms_sent : null;
|
||||
if (msg) {
|
||||
this.props.onError(this.props.intl.formatMessage(msg), 'info');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
handleEmailChange(e) {
|
||||
this.setState({
|
||||
email: e.target.value
|
||||
});
|
||||
}
|
||||
handlePasswordChange(e) {
|
||||
this.setState({
|
||||
password: e.target.value
|
||||
});
|
||||
}
|
||||
handleCodeChange(e) {
|
||||
this.setState({
|
||||
code: e.target.value.replace(/[^\d]/g, '')
|
||||
});
|
||||
}
|
||||
handleShowCodeField(e) {
|
||||
e.preventDefault();
|
||||
this.setState({
|
||||
haveCode: true
|
||||
});
|
||||
}
|
||||
render() {
|
||||
const showCredentialInput = !((this.state.token || this.state.code && this.props.reqCredMethod) && this.state.scheme);
|
||||
const showPasswordInput = !showCredentialInput || this.state.haveCode || this.state.sent;
|
||||
const passwordInput = (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("label", {
|
||||
className: "small gray",
|
||||
htmlFor: "new-password",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "label_new_password",
|
||||
defaultMessage: "New password",
|
||||
description: "Label for entering a new password"
|
||||
}, void 0, false)
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "new_password_placeholder",
|
||||
defaultMessage: "Enter new password",
|
||||
description: "Placeholder for entering new password",
|
||||
children: placeholder => (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_widgets_visible_password_jsx__WEBPACK_IMPORTED_MODULE_3__["default"], {
|
||||
id: "new-password",
|
||||
placeholder: placeholder,
|
||||
autoComplete: "new-password",
|
||||
value: this.state.password,
|
||||
required: true,
|
||||
autoFocus: true,
|
||||
onChange: this.handlePasswordChange
|
||||
}, void 0, false)
|
||||
}, void 0, false)]
|
||||
}, void 0, true);
|
||||
const emailInput = (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
|
||||
children: [this.state.haveCode ? null : (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("label", {
|
||||
htmlFor: "inputEmail",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "label_reset_password",
|
||||
defaultMessage: "Send a password reset email",
|
||||
description: "Label for password reset field"
|
||||
}, void 0, false)
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "credential_email_prompt",
|
||||
defaultMessage: "Your registration email",
|
||||
description: "Placeholder for entering email",
|
||||
children: placeholder => (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("input", {
|
||||
type: "email",
|
||||
id: "inputEmail",
|
||||
placeholder: placeholder,
|
||||
autoComplete: "email",
|
||||
value: this.state.email,
|
||||
onChange: this.handleEmailChange,
|
||||
required: true,
|
||||
autoFocus: true
|
||||
}, void 0, false)
|
||||
}, void 0, false)]
|
||||
}, void 0, true);
|
||||
const phoneInput = (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
|
||||
children: [this.state.haveCode ? null : (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("div", {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("label", {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "label_reset_password_tel",
|
||||
defaultMessage: "Send SMS to reset password",
|
||||
description: "Label for password reset field by phone"
|
||||
}, void 0, false)
|
||||
}, void 0, false)
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("div", {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("label", {
|
||||
className: "small gray",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "mobile_phone_number",
|
||||
defaultMessage: "Mobile phone number",
|
||||
description: "Prompt for entering a mobile phone number"
|
||||
}, void 0, false)
|
||||
}, void 0, false)
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("div", {
|
||||
className: "panel-form-row",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_widgets_phone_edit_jsx__WEBPACK_IMPORTED_MODULE_2__["default"], {
|
||||
autoFocus: true,
|
||||
onShowCountrySelector: this.props.onShowCountrySelector,
|
||||
onSubmit: number => this.setState({
|
||||
tel: number
|
||||
})
|
||||
}, void 0, false)
|
||||
}, void 0, false)]
|
||||
}, void 0, true);
|
||||
const codeInput = (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
|
||||
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("div", {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("label", {
|
||||
className: "small gray",
|
||||
htmlFor: "enter-confirmation-code",
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "enter_confirmation_code_prompt",
|
||||
defaultMessage: "Confirmation code",
|
||||
description: "Request to enter confirmation code"
|
||||
}, void 0, false)
|
||||
}, void 0, false)
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("div", {
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "numeric_confirmation_code_prompt",
|
||||
defaultMessage: "Numbers only",
|
||||
description: "Prompt for numeric conformation code",
|
||||
children: numbers_only => (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("input", {
|
||||
type: "text",
|
||||
id: "enter-confirmation-code",
|
||||
placeholder: numbers_only,
|
||||
maxLength: 10,
|
||||
value: this.state.code,
|
||||
onChange: this.handleCodeChange,
|
||||
required: true
|
||||
}, void 0, false)
|
||||
}, void 0, false)
|
||||
}, void 0, false)]
|
||||
}, void 0, true);
|
||||
const credentialInput = this.props.reqCredMethod == 'email' ? emailInput : this.props.reqCredMethod == 'tel' ? phoneInput : null;
|
||||
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("form", {
|
||||
id: "password-reset-form",
|
||||
onSubmit: this.handleSubmit,
|
||||
children: [!this.state.sent && showCredentialInput ? credentialInput : null, this.state.haveCode || this.state.sent ? codeInput : null, showPasswordInput ? passwordInput : null, (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("div", {
|
||||
className: "dialog-buttons",
|
||||
children: [this.state.haveCode || this.state.sent || this.state.token || this.state.code ? null : (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("a", {
|
||||
href: "#",
|
||||
onClick: this.handleShowCodeField,
|
||||
style: {
|
||||
marginRight: 'auto'
|
||||
},
|
||||
children: (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "password_i_have_code",
|
||||
defaultMessage: "I have code",
|
||||
description: "Call to open field to enter password reset code"
|
||||
}, void 0, false)
|
||||
}, void 0, false), (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("button", {
|
||||
className: "primary",
|
||||
type: "submit",
|
||||
children: showPasswordInput ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "button_reset",
|
||||
defaultMessage: "Reset",
|
||||
description: "Button [Reset]"
|
||||
}, void 0, false) : (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_intl__WEBPACK_IMPORTED_MODULE_1__.FormattedMessage, {
|
||||
id: "button_send_request",
|
||||
defaultMessage: "Send request",
|
||||
description: "Button [Send request]"
|
||||
}, void 0, false)
|
||||
}, void 0, false)]
|
||||
}, void 0, true)]
|
||||
}, void 0, true);
|
||||
}
|
||||
}
|
||||
/* harmony default export */ __webpack_exports__["default"] = ((0,react_intl__WEBPACK_IMPORTED_MODULE_1__.injectIntl)(PasswordResetView));
|
||||
|
||||
/***/ })
|
||||
|
||||
}]);
|
||||
//# sourceMappingURL=src_views_password-reset-view_jsx.dev.js.map
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user