86262.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. exports.id = 86262;
  2. exports.ids = [86262];
  3. exports.modules = {
  4. /***/ 86161:
  5. /***/ ((module) => {
  6. // Exports
  7. module.exports = {
  8. "container": "CompleteSignupForm_container__WWUVf",
  9. "title": "CompleteSignupForm_title__nNTvk",
  10. "strong": "CompleteSignupForm_strong__XIUxt",
  11. "emailSent": "CompleteSignupForm_emailSent__Nlle8"
  12. };
  13. /***/ }),
  14. /***/ 57361:
  15. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  16. "use strict";
  17. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  18. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  19. /* harmony export */ });
  20. /* harmony import */ var lodash_capitalize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59969);
  21. /* harmony import */ var lodash_capitalize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_capitalize__WEBPACK_IMPORTED_MODULE_0__);
  22. /* harmony import */ var types_FormField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3840);
  23. /**
  24. * Transform FormField to be FormBuilderFormField
  25. *
  26. * FormField and FormBuilderFormField are the same except, FormBuilderFormField is not tied to errorId and translationId
  27. * - Previously FormBuilder was tied to common.json, next-translate.
  28. * - and it's also tied to ErrorMessageId
  29. * - and the `label` is also less flexible because it's tied to `field` value
  30. *
  31. * This function help to transform FormField to FormBuilderFormField for common use case.
  32. * But when we need a more flexible use case, we can use FormBuilderFormField directly. Without using this helper function
  33. *
  34. * check ./FormBuilderTypes.ts for more info
  35. *
  36. * Note that this function expect the `t` translate function to be used with `common.json`. And expect `form.$field` and `validation.$errorId` to exist.
  37. *
  38. * @param {FormField} formField
  39. * @returns {FormBuilderFormField} formBuilderFormField
  40. */ const buildFormBuilderFormField = (formField, t)=>{
  41. return {
  42. ...formField,
  43. ...formField.rules && {
  44. rules: formField.rules.map((rule)=>({
  45. type: rule.type,
  46. value: rule.value,
  47. errorMessage: t(`common:validation.${rule.errorId}`, {
  48. field: lodash_capitalize__WEBPACK_IMPORTED_MODULE_0___default()(formField.field),
  49. ...rule.errorExtraParams
  50. })
  51. }))
  52. },
  53. ...formField.label && {
  54. label: formField.type === types_FormField__WEBPACK_IMPORTED_MODULE_1__/* .FormFieldType.Checkbox */ .E.Checkbox ? formField.label : t(`form.${formField.label}`)
  55. },
  56. ...formField.defaultValue && {
  57. defaultValue: formField.defaultValue
  58. },
  59. ...formField.placeholder && {
  60. placeholder: formField.placeholder
  61. }
  62. };
  63. };
  64. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (buildFormBuilderFormField);
  65. /***/ }),
  66. /***/ 86262:
  67. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  68. "use strict";
  69. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  70. __webpack_require__.r(__webpack_exports__);
  71. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  72. /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
  73. /* harmony export */ });
  74. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  75. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  76. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60866);
  77. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1__);
  78. /* harmony import */ var swr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15941);
  79. /* harmony import */ var _FormBuilder_buildFormBuilderFormField__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57361);
  80. /* harmony import */ var _FormBuilder_FormBuilder__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(37013);
  81. /* harmony import */ var _CompleteSignupForm_module_scss__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(86161);
  82. /* harmony import */ var _CompleteSignupForm_module_scss__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_CompleteSignupForm_module_scss__WEBPACK_IMPORTED_MODULE_9__);
  83. /* harmony import */ var _EmailVerificationForm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(52501);
  84. /* harmony import */ var _utils_auth_api__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37883);
  85. /* harmony import */ var _utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13830);
  86. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(55943);
  87. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr__WEBPACK_IMPORTED_MODULE_2__, _FormBuilder_FormBuilder__WEBPACK_IMPORTED_MODULE_4__, _EmailVerificationForm__WEBPACK_IMPORTED_MODULE_5__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_8__]);
  88. ([swr__WEBPACK_IMPORTED_MODULE_2__, _FormBuilder_FormBuilder__WEBPACK_IMPORTED_MODULE_4__, _EmailVerificationForm__WEBPACK_IMPORTED_MODULE_5__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_8__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  89. /**
  90. * If users' email is empty, return email verification form
  91. * otherwise, return normal user information form
  92. */ const CompleteSignupForm = ({ requiredFields })=>{
  93. const { mutate } = (0,swr__WEBPACK_IMPORTED_MODULE_2__.useSWRConfig)();
  94. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_1___default()("common");
  95. const onSubmit = (data)=>{
  96. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_8__/* .logFormSubmission */ .dz)("complete_signUp");
  97. (0,_utils_auth_api__WEBPACK_IMPORTED_MODULE_6__/* .completeSignup */ .kK)(data).then(()=>{
  98. // mutate the cache version of users/profile
  99. mutate((0,_utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_7__/* .makeUserProfileUrl */ .bo)());
  100. });
  101. };
  102. const emailFormField = requiredFields.find((field)=>field.field === "email");
  103. const isEmailRequired = !!emailFormField;
  104. if (isEmailRequired) {
  105. return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmailVerificationForm__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
  106. emailFormField: (0,_FormBuilder_buildFormBuilderFormField__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({
  107. ...emailFormField,
  108. placeholder: t(`form.email`)
  109. }, t)
  110. });
  111. }
  112. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  113. className: (_CompleteSignupForm_module_scss__WEBPACK_IMPORTED_MODULE_9___default().container),
  114. children: [
  115. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h2", {
  116. className: (_CompleteSignupForm_module_scss__WEBPACK_IMPORTED_MODULE_9___default().title),
  117. children: t("complete-sign-up")
  118. }),
  119. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_FormBuilder_FormBuilder__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
  120. formFields: requiredFields.map((field)=>(0,_FormBuilder_buildFormBuilderFormField__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({
  121. ...field,
  122. placeholder: t(`form.${field.field}`)
  123. }, t)),
  124. onSubmit: onSubmit,
  125. actionText: t("submit")
  126. })
  127. ]
  128. });
  129. };
  130. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CompleteSignupForm);
  131. __webpack_async_result__();
  132. } catch(e) { __webpack_async_result__(e); } });
  133. /***/ }),
  134. /***/ 52501:
  135. /***/ ((module, __webpack_exports__, __webpack_require__) => {
  136. "use strict";
  137. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
  138. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  139. /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
  140. /* harmony export */ });
  141. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
  142. /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
  143. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
  144. /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
  145. /* harmony import */ var next_translate_Trans__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(74137);
  146. /* harmony import */ var next_translate_Trans__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_translate_Trans__WEBPACK_IMPORTED_MODULE_2__);
  147. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60866);
  148. /* harmony import */ var next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3__);
  149. /* harmony import */ var swr__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15941);
  150. /* harmony import */ var _FormBuilder_buildTranslatedErrorMessageByErrorId__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21485);
  151. /* harmony import */ var _FormBuilder_FormBuilder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37013);
  152. /* harmony import */ var _CompleteSignupForm_module_scss__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(86161);
  153. /* harmony import */ var _CompleteSignupForm_module_scss__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_CompleteSignupForm_module_scss__WEBPACK_IMPORTED_MODULE_14__);
  154. /* harmony import */ var _ResendEmailSection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(68205);
  155. /* harmony import */ var _utils_auth_api__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(37883);
  156. /* harmony import */ var _utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13830);
  157. /* harmony import */ var _utils_eventLogger__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(55943);
  158. /* harmony import */ var types_ErrorMessageId__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(99133);
  159. /* harmony import */ var types_FieldRule__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(98213);
  160. /* harmony import */ var types_FormField__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(3840);
  161. var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr__WEBPACK_IMPORTED_MODULE_4__, _FormBuilder_FormBuilder__WEBPACK_IMPORTED_MODULE_6__, _ResendEmailSection__WEBPACK_IMPORTED_MODULE_7__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_10__]);
  162. ([swr__WEBPACK_IMPORTED_MODULE_4__, _FormBuilder_FormBuilder__WEBPACK_IMPORTED_MODULE_6__, _ResendEmailSection__WEBPACK_IMPORTED_MODULE_7__, _utils_eventLogger__WEBPACK_IMPORTED_MODULE_10__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
  163. const EmailVerificationForm = ({ emailFormField })=>{
  164. const { 0: isSubmitted , 1: setIsSubmitted } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
  165. const { mutate } = (0,swr__WEBPACK_IMPORTED_MODULE_4__.useSWRConfig)();
  166. const { 0: email , 1: setEmail } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)();
  167. const { t } = next_translate_useTranslation__WEBPACK_IMPORTED_MODULE_3___default()("common");
  168. const { 0: forceRerenderKey , 1: setForceRerenderKey } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);
  169. const onEmailSubmitted = (data)=>{
  170. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_10__/* .logFormSubmission */ .dz)("email_verification");
  171. (0,_utils_auth_api__WEBPACK_IMPORTED_MODULE_8__/* .requestVerificationCode */ .x8)(data.email);
  172. setIsSubmitted(true);
  173. setEmail(data.email);
  174. };
  175. const verificationCodeFormField = {
  176. field: "code",
  177. type: types_FormField__WEBPACK_IMPORTED_MODULE_13__/* .FormFieldType.Number */ .E.Number,
  178. placeholder: t("form.code"),
  179. rules: [
  180. {
  181. type: types_FieldRule__WEBPACK_IMPORTED_MODULE_12__/* .RuleType.Required */ .S.Required,
  182. value: true,
  183. errorMessage: (0,_FormBuilder_buildTranslatedErrorMessageByErrorId__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)(types_ErrorMessageId__WEBPACK_IMPORTED_MODULE_11__/* ["default"].RequiredField */ .Z.RequiredField, "code", t)
  184. },
  185. ]
  186. };
  187. const onVerificationCodeSubmitted = (data)=>{
  188. (0,_utils_eventLogger__WEBPACK_IMPORTED_MODULE_10__/* .logFormSubmission */ .dz)("verification_code");
  189. return (0,_utils_auth_api__WEBPACK_IMPORTED_MODULE_8__/* .completeSignup */ .kK)({
  190. email,
  191. verificationCode: data.code.toString()
  192. }).then(()=>{
  193. // mutate the cache version of users/profile
  194. mutate((0,_utils_auth_apiPaths__WEBPACK_IMPORTED_MODULE_9__/* .makeUserProfileUrl */ .bo)());
  195. }).catch(async (err)=>{
  196. const result = {
  197. errors: {
  198. code: err?.message
  199. }
  200. };
  201. return result;
  202. });
  203. };
  204. const onResendEmailRequested = ()=>{
  205. (0,_utils_auth_api__WEBPACK_IMPORTED_MODULE_8__/* .requestVerificationCode */ .x8)(email);
  206. setForceRerenderKey((preVal)=>preVal + 1);
  207. };
  208. return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
  209. className: (_CompleteSignupForm_module_scss__WEBPACK_IMPORTED_MODULE_14___default().container),
  210. children: [
  211. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h2", {
  212. className: (_CompleteSignupForm_module_scss__WEBPACK_IMPORTED_MODULE_14___default().title),
  213. children: t("email-verification.email-verification")
  214. }),
  215. isSubmitted ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
  216. children: [
  217. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("p", {
  218. className: (_CompleteSignupForm_module_scss__WEBPACK_IMPORTED_MODULE_14___default().emailSent),
  219. children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx((next_translate_Trans__WEBPACK_IMPORTED_MODULE_2___default()), {
  220. i18nKey: "common:email-verification.email-sent",
  221. values: {
  222. email
  223. },
  224. components: {
  225. strong: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("strong", {
  226. className: (_CompleteSignupForm_module_scss__WEBPACK_IMPORTED_MODULE_14___default().strong)
  227. })
  228. }
  229. })
  230. }),
  231. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_FormBuilder_FormBuilder__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
  232. formFields: [
  233. verificationCodeFormField
  234. ],
  235. onSubmit: onVerificationCodeSubmitted,
  236. actionText: t("common:email-verification.verify-code")
  237. }),
  238. /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ResendEmailSection__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
  239. onResendButtonClicked: onResendEmailRequested
  240. }, forceRerenderKey)
  241. ]
  242. }) : /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_FormBuilder_FormBuilder__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
  243. formFields: [
  244. emailFormField
  245. ],
  246. onSubmit: onEmailSubmitted,
  247. actionText: t("submit")
  248. })
  249. ]
  250. });
  251. };
  252. /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (EmailVerificationForm);
  253. __webpack_async_result__();
  254. } catch(e) { __webpack_async_result__(e); } });
  255. /***/ })
  256. };
  257. ;
  258. //# sourceMappingURL=86262.js.map