PageSourceSearch

https://habitica.com/assets/registerLoginReset-PlvpPAYb.js

js habitica.com collected 2026-09-24 08:29:14 UTC 12,518 bytes, 1 lines download raw bytes

1import{n as o,L as i,af as l,O as d,j as n,aK as u,aL as c,aM as m,aN as p}from"./index-BTusD_H2.js";import{P as f}from"./privacy-de2NtynA.js";import{N as v}from"./copyToClipboard-BLhhoJdE.js";import{a as w}from"./accountCreation-ezYiy9yi.js";import"./positive-bpSOLqYI.js";import"./hello.all-BDNiQ-Wq.js";const _={components:{PrivacyBanner:f},mixins:[w,v,l],data(){const t={forgotPassword:!1,resetPasswordSetNewOneData:{hasError:null,code:null},usernameIssues:[]};return t.icons=Object.freeze({exclamation:p,habiticaIcon:m,googleIcon:c,appleIcon:u}),t},computed:{registering(){return!!this.$route.path.startsWith("/register")},resetPasswordSetNewOne(){return!!this.$route.path.startsWith("/reset-password")},usernameValid(){return this.username.length<1?!1:this.usernameIssues.length===0},usernameInvalid(){return this.username.length<1?!1:!this.usernameValid}},watch:{$route:{handler(){if(this.setTitle(),this.resetPasswordSetNewOne){const{query:t}=this.$route,{code:s}=t,e=t.hasError==="true";if(e){window.alert(t.message),this.$router.push({name:"login"});return}if(!s){window.alert(this.$t("invalidPasswordResetCode")),this.$router.push({name:"login"});return}this.resetPasswordSetNewOneData.code=t.code,this.resetPasswordSetNewOneData.hasError=e}},immediate:!0},username(){this.validateUsername(this.username)}},mounted(){this.forgotPassword=this.$route.path.startsWith("/forgot-password"),this.forgotPassword&&this.$route.query.email&&(this.username=this.$route.query.email)},methods:{async login(){await this.$store.dispatch("auth:login",{username:this.username,password:this.password});const t=this.sanitizeRedirect(this.$route.query.redirectTo);window.location.href=t},setTitle(){if(this.resetPasswordSetNewOne)return;let t="login";this.registering&&(t="register"),this.$store.dispatch("common:setTitle",{section:this.$t(t)})},handleSubmit(){if(this.registering){this.proceed("local");return}if(this.forgotPassword){this.forgotPasswordLink();return}if(this.resetPasswordSetNewOne){this.resetPasswordSetNewOneLink();return}this.login()},forgotPasswordLink:i(async function(){if(!this.username){window.alert(this.$t("missingEmail"));return}await n.post("/api/v4/user/reset-password",{email:this.username}),window.alert(this.$t("newPassSent"))},500),async resetPasswordSetNewOneLink(){if(!this.password){window.alert(this.$t("missingNewPassword"));return}if(this.password!==this.passwordConfirm){window.alert(this.$t("passwordConfirmationMatch"));return}const t=await n.post("/api/v4/user/auth/reset-password-set-new-one",{newPassword:this.password,confirmPassword:this.passwordConfirm,code:this.resetPasswordSetNewOneData.code});t.data.message&&window.alert(t.data.message),this.password="",this.passwordConfirm="",this.resetPasswordSetNewOneData.code="",this.resetPasswordSetNewOneData.hasError=!1,this.$router.push({name:"login"})},validateUsername:i(function(s){const e=[];if(s.length>0&&!d(s)){s.length>20&&e.push(this.$t("usernameIssueLength"));const r=/[^a-z0-9_-]/i,a=s.match(r);a!==null&&a[0]!==null&&e.push(this.$t("usernameIssueInvalidCharacters"))}this.usernameIssues=e},500)}};var h=function(){var s=this,e=s._self._c;return e("div",{staticClass:"form-wrapper"},[s._m(0),e("privacy-banner",{staticClass:"privacy-banner"}),!s.forgotPassword&&!s.resetPasswordSetNewOne?e("form",{attrs:{id:"login-form"},on:{submit:function(r){return r.preventDefault(),r.stopPropagation(),s.handleSubmit.apply(null,arguments)}}},[e("div",{staticClass:"text-center"},[e("div",[e("a",{staticClass:"svg-icon svg habitica-logo mx-auto mb-4",attrs:{href:"/static/home"},domProps:{innerHTML:s._s(s.icons.habiticaIcon)}})])]),e("div",{staticClass:"form-group"},[e("div",[e("div",{staticClass:"btn btn-secondary social-button",on:{click:function(r){return s.proceed("google")}}},[e("div",{staticClass:"svg-icon social-icon",domProps:{innerHTML:s._s(s.icons.googleIcon)}}),e("div",{staticClass:"text"},[s._v(" "+s._s(s.$t("signUpWithSocial",{social:"Google"}))+" ")])])])]),e("div",{staticClass:"form-group"},[e("div",[e("div",{staticClass:"btn btn-secondary social-button",on:{click:function(r){return s.proceed("apple")}}},[e("div",{staticClass:"svg-icon social-icon",domProps:{innerHTML:s._s(s.icons.appleIcon)}}),e("div",{staticClass:"text"},[s._v(" "+s._s(s.$t("signUpWithSocial",{social:"Apple"}))+" ")])])])]),e("div",{staticClass:"strike mb-3"},[e("span",[s._v(s._s(s.$t("or")))])]),s.registering?s._e():e("div",{staticClass:"form-group",class:{"mb-2":s.usernameIssues.length>0}},[s._m(1),e("input",{directives:[{name:"model",rawName:"v-model",value:s.username,expression:"username"}
1],staticClass:"form-control dark",class:{"input-valid":s.usernameValid,"input-invalid":s.usernameInvalid},attrs:{id:"usernameInput",type:"text",placeholder:s.$t("emailOrUsername")},domProps:{value:s.username},on:{input:function(r){r.target.composing||(s.username=r.target.value)}}})]),s._l(s.usernameIssues,function(r){return e("div",{key:r,staticClass:"input-error"},[s._v(" "+s._s(r)+" ")])}),s.registering?e("div",{staticClass:"form-group"},[s._m(2),e("input",{directives:[{name:"model",rawName:"v-model",value:s.email,expression:"email"}],staticClass:"form-control dark",class:{"input-invalid input-with-error":s.emailError,"input-valid":s.emailValid},attrs:{id:"emailInput",type:"email",placeholder:s.$t("emailPlaceholder")},domProps:{value:s.email},on:{input:function(r){r.target.composing||(s.email=r.target.value)}}}),s.emailError?e("div",{staticClass:"input-error"},[s._v(" "+s._s(s.emailError)+" ")]):s._e()]):s._e(),e("div",{staticClass:"form-group",class:{"mt-2":s.usernameIssues.length>0}},[s._m(3),s.registering?s._e():s._m(4),e("input",{directives:[{name:"model",rawName:"v-model",value:s.password,expression:"password"}],staticClass:"form-control dark",class:{"input-invalid input-with-error":s.passwordInvalid,"input-valid":s.passwordValid},attrs:{id:"passwordInput",type:"password",placeholder:s.$t(s.registering?"passwordPlaceholder":"password")},domProps:{value:s.password},on:{input:function(r){r.target.composing||(s.password=r.target.value)}}}),s.passwordInvalid&&s.registering?e("div",{staticClass:"input-error"},[s._v(" "+s._s(s.$t("minPasswordLength"))+" ")]):s._e(),s.passwordInvalid&&!s.registering?e("div",{staticClass:"input-error"},[s._v(" "+s._s(s.$t("minPasswordLengthLogin"))+" ")]):s._e()]),s.registering?e("div",{staticClass:"form-group mb-4"},[s._m(5),e("input",{directives:[{name:"model",rawName:"v-model",value:s.passwordConfirm,expression:"passwordConfirm"}],staticClass:"form-control dark input-with-error",class:{"input-invalid":s.passwordConfirmInvalid,"input-valid":s.passwordConfirmValid},attrs:{id:"confirmPasswordInput",type:"password",placeholder:s.$t("confirmPasswordPlaceholder")},domProps:{value:s.passwordConfirm},on:{input:function(r){r.target.composing||(s.passwordConfirm=r.target.value)}}}),s.passwordConfirmInvalid?e("div",{staticClass:"input-error"},[s._v(" "+s._s(s.$t("passwordConfirmationMatch"))+" ")]):s._e()]):s._e(),e("div",{staticClass:"text-center"},[s.registering?e("button",{staticClass:"btn btn-info w-100 mb-4",attrs:{id:"continue-button",type:"submit",disabled:!(s.emailValid&&s.passwordValid&&s.passwordConfirmValid)}},[s._v(" "+s._s(s.$t("continue"))+" ")]):s._e(),s.registering?s._e():e("button",{staticClass:"btn btn-info w-100 mb-4",attrs:{type:"submit",disabled:!s.usernameValid||!s.passwordValid}},[s._v(" "+s._s(s.$t("login"))+" ")]),e("div",[s.registering?e("router-link",{attrs:{to:{name:"login"},exact:"exact"}},[s._m(6)]):s._e(),s.registering?s._e():e("router-link",{attrs:{to:{name:"register"},exact:"exact"}},[s._m(7)])],1)])],2):s._e(),s.forgotPassword?e("form",{attrs:{id:"forgot-form"},on:{submit:function(r){return r.preventDefault(),s.handleSubmit.apply(null,arguments)}}},[e("div",[e("div",[e("a",{staticClass:"svg-icon habitica-logo mx-auto mb-4",attrs:{href:"/static/home"},domProps:{innerHTML:s._s(s.icons.habiticaIcon)}})]),e("div",{staticClass:"header"},[s._m(8),s._m(9)]),e("div",{staticClass:"form-group",class:{"mb-2":s.usernameIssues.length>0,"mb-4":s.usernameIssues.length===0}},[s._m(10),e("input",{directives:[{name:"model",rawName:"v-model",value:s.username,expression:"username"}],staticClass:"form-control dark",class:{"input-valid":s.usernameValid,"input-invalid":s.usernameInvalid},attrs:{id:"usernameInput",type:"text",placeholder:s.$t("emailUsernamePlaceholder")},domProps:{value:s.username},on:{input:function(r){r.target.composing||(s.username=r.target.value)}}})]),s._l(s.usernameIssues,function(r){return e("div",{key:r,staticClass:"input-error mb-2"},[s._v(" "+s._s(r)+" ")])}),e("div",{staticClass:"text-center"},[e("button",{staticClass:"btn btn-info w-100",attrs:{disabled:!s.username||s.usernameIssues.length>0},on:{click:function(r){return s.forgotPasswordLink()}}},[s._v(" "+s._s(s.$t("sendLink"))+" ")])])],2)]):s._e(),s.resetPasswordSetNewOne?e("form",{attrs:{id:"reset-password-set-new-one-form"},on:{submit:function(r){return r.preventDefault(),s.handleSubmit.apply(null,arguments)}}},[e("div",{staticClass:"text-center"},[e("div",[e("a",{staticClass:"svg-icon habitica-logo mx-auto mb-4",attrs:{href:"/static/home"},domProps:{innerHTML:s._s(s.icons.habiticaIcon)}})]),e("div",{staticClass:"header"},[e("h2",[s._v(s._s(s.$t("passwordResetPage")))])])]),e("div",{staticClass:"form-group"},[s._m(11),e("input",{directives:[{name:"model",rawName:"v-model",value:s.password,expression:"password"}
1],staticClass:"form-control dark input-with-error",class:{"input-invalid":s.passwordInvalid,"input-valid":s.passwordValid},attrs:{id:"passwordInput",type:"password",placeholder:s.$t("password")},domProps:{value:s.password},on:{input:function(r){r.target.composing||(s.password=r.target.value)}}}),s.passwordInvalid?e("div",{staticClass:"input-error"},[s._v(" "+s._s(s.$t("minPasswordLength"))+" ")]):s._e()]),e("div",{staticClass:"form-group mb-4"},[s._m(12),e("input",{directives:[{name:"model",rawName:"v-model",value:s.passwordConfirm,expression:"passwordConfirm"}],staticClass:"form-control dark input-with-error",class:{"input-invalid":s.passwordConfirmInvalid,"input-valid":s.passwordConfirmValid},attrs:{id:"confirmPasswordInput",type:"password",placeholder:s.$t("confirmPasswordPlaceholder")},domProps:{value:s.passwordConfirm},on:{input:function(r){r.target.composing||(s.passwordConfirm=r.target.value)}}}),s.passwordConfirmInvalid?e("div",{staticClass:"input-error"},[s._v(" "+s._s(s.$t("passwordConfirmationMatch"))+" ")]):s._e()]),e("div",{staticClass:"text-center"},[e("button",{staticClass:"btn btn-info w-100",attrs:{disabled:!s.password||!s.passwordConfirm||s.password!==s.passwordConfirm||s.resetPasswordSetNewOneData.hasError},on:{click:function(r){return s.resetPasswordSetNewOneLink()}}},[s._v(" "+s._s(s.$t("setNewPass"))+" ")])])]):s._e()],1)},g=[function(){var t=this,s=t._self._c;return s("div",{attrs:{id:"top-background"}},[s("div",{staticClass:"seamless_stars_varied_opacity_repeat"})])},function(){var t=this,s=t._self._c;return s("label",{attrs:{for:"usernameInput"}},[t._v(t._s(t.$t("emailOrUsername")))])},function(){var t=this,s=t._self._c;return s("label",{attrs:{for:"emailInput"}},[t._v(t._s(t.$t("email")))])},function(){var t=this,s=t._self._c;return s("label",{attrs:{for:"passwordInput"}},[t._v(t._s(t.$t("password")))])},function(){var t=this,s=t._self._c;return s("a",{staticClass:"float-right forgot-password",on:{click:function(e){t.forgotPassword=!0}}},[t._v(t._s(t.$t("forgotPassword")))])},function(){var t=this,s=t._self._c;return s("label",{attrs:{for:"confirmPasswordInput"}},[t._v(t._s(t.$t("confirmPassword")))])},function(){var t=this,s=t._self._c;return s("a",{staticClass:"white",domProps:{innerHTML:t._s(t.$t("alreadyHaveAccountLogin"))}})},function(){var t=this,s=t._self._c;return s("a",{staticClass:"white",domProps:{innerHTML:t._s(t.$t("dontHaveAccountSignup"))}})},function(){var t=this,s=t._self._c;return s("h2",{staticClass:"text-center"},[t._v(" "+t._s(t.$t("emailNewPass"))+" ")])},function(){var t=this,s=t._self._c;return s("p",{staticClass:"purple-600 text-left"},[t._v(" "+t._s(t.$t("forgotPasswordSteps"))+" ")])},function(){var t=this,s=t._self._c;return s("label",{attrs:{for:"usernameInput"}},[t._v(t._s(t.$t("emailOrUsername")))])},function(){var t=this,s=t._self._c;return s("label",{attrs:{for:"passwordInput"}},[t._v(t._s(t.$t("newPass")))])},function(){var t=this,s=t._self._c;return s("label",{attrs:{for:"confirmPasswordInput"}},[t._v(t._s(t.$t("confirmPass")))])}],C=o(_,h,g,!1,null,"b60e38f2");const y=C.exports;export{y as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.