1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2898,447],{14300:(e,s,t)=>{t.d(s,{Z:()=>i});class i{constructor(e){({el:this.el,id:this.id,props:this.props}=e),this.viewEl=this.el.querySelector(`#${this.id}`)}getTitle(){return this.viewEl.dataset.title}}},447:(e,s,t)=>{t.r(s),t.d(s,{default:()=>o});var i=t(14300),n=t(73763);class o extends i.Z{constructor(e){var s;super(e),this.backButtonEl=this.el.querySelector(".settings-page-back-button"),this.selectedNavItemEl=this.el.querySelector(".rt-nav-item.selected"),this.handleBackButtonClick=this.handleBackButtonClick.bind(this),this.handleSelectedNavItemClick=this.handleSelectedNavItemClick.bind(this),this.handleWindowResize=this.handleWindowResize.bind(this),null===(s=this.backButtonEl)||void 0===s||s.addEventListener("click",this.handleBackButtonClick),this.selectedNavItemEl.addEventListener("click",this.handleSelectedNavItemClick),window.addEventListener("resize",this.handleWindowResize),this.handleWindowResize()}remove(){var e;null===(e=this.backButtonEl)||void 0===e||e.removeEventListener("click",this.handleBackButtonClick),this.selectedNavItemEl.removeEventListener("click",this.handleSelectedNavItemClick),window.removeEventListener("resize",this.handleWindowResize)}handleBackButtonClick(){this.toggleShowAside()}handleSelectedNavItemClick(){this.toggleShowAside()}handleWindowResize(){const e=(0,n.vG)(redux.getState()).includes("lg");e&&this.el.classList.remove("show-aside"),this.selectedNavItemEl.disabled=e}toggleShowAside(){this.el.classList.toggle("show-aside")}}},12898:(e,s,t)=>{t.r(s),t.d(s,{default:()=>E});var i=t(447),n=t(45469),o=t(90227),r=t(45697),a=t.n(r),l=t(71370),c=t(85893);function d({formErrors:e,formValues:s,onInputChange:t}){return(0,c.jsxs)("section",{className:"user-settings-section",children:[(0,c.jsx)("h3",{className:"user-settings-section-heading",children:"General"}),(0,c.jsx)(o.Z,{errorText:e.username,id:"username",label:"Username",onChange:t,value:s.username}),(0,c.jsx)(o.Z,{errorText:e.email,id:"email",label:"Email",onChange:t,type:"email",value:s.email}),(0,c.jsx)(l.Z,{id:"distance_units",label:"Units of Measure",onChange:t,options:[{label:"Metric",value:"km"},{label:"Imperial",value:"mi"}],value:s.distance_units})]})}d.propTypes={formErrors:a().object.isRequired,formValues:a().object.isRequired,onInputChange:a().func.isRequired};var u=t(72235),h=t(62257),m=t(96369),p=t(14997),f=t(45007),v=t(67294);const w="facebook";function g({isVisible:e}){const s=(0,f.I0)(),[t,i]=(0,v.useState)(!1);return e?(0,c.jsxs)("section",{className:"user-settings-section",children:[(0,c.jsx)("h3",{className:"user-settings-section-heading",children:"Social Connections"}),(0,c.jsxs)(n.Z,{className:"disconnect-facebook-button primary-outline",isLoading:t,onClick:async function(){try{i(!0);const e=(await async function(){const e=await fetch("/api/web/current_user/identities");if(!e.ok)throw new Error(e.status);return await e.json()}()).find((e=>e.provider===w));e&&(await async function(e){const s=await fetch(`/api/web/current_user/identities/${e}`,{headers:{"X-CSRF-Token":h.T},method:"DELETE"});if(!s.ok)throw new Error(s.status)}(e.id),s((0,m.JP)({facebook_connected:!1})),(0,p.s)({properties:{connection_type:w,update_type:"disconnect"}}))}catch(e){console.error(e)}finally{i(!1)}},children:[(0,c.jsx)(u.Z,{}),(0,c.jsx)("span",{children:"Disconnect Facebook"})]})]}):null}function b({formErrors:e,formValues:s,onInputChange:t}){var i,n,r;return(0,c.jsxs)("section",{className:"user-settings-section",children:[(0,c.jsx)("h3",{className:"user-settings-section-heading",children:"Update Password"}),(0,c.jsx)(o.Z,{errorText:null===(i=e.old_password)||void 0===i?void 0:i[0],id:"old_password",label:"Old Password",onChange:t,type:"password",value:s.old_password}),(0,c.jsx)(o.Z,{errorText:null===(n=e.password)||void 0===n?void 0:n[0],id:"password",label:"Password",onChange:t,type:"password",value:s.password}),(0,c.jsx)(o.Z,{errorText:null===(r=e.password_confirmation)||void 0===r?void 0:r[0],id:"password_confirmation",label:"Confirm new password",onChange:t,type:"password",value:s.password_confirmation})]})}g.propTypes={isVisible:a().bool.isRequired}
1,b.propTypes={formErrors:a().object.isRequired,formValues:a().object.isRequired,onInputChange:a().func.isRequired};var k=t(96033),x=t(86371),C=t(76318);function j(){const e=(0,f.I0)(),s=(0,f.v9)(C.HF),{distance_units:t,email:i,facebook_connected:o,username:r}=s,a="user-settings-account-form",[l,u]=(0,v.useState)({}),[p,w]=(0,v.useState)({distance_units:t,email:i,old_password:"",password:"",password_confirmation:"",username:r}),[j,y]=(0,v.useState)(!1);function E(e){const{name:s,value:t}=e.target,i={...p,[s]:t};!function(e){const s={...l};var t;s[e]&&("password"===e&&s.password_confirmation?delete s.password_confirmation:"password_confirmation"===e&&"Your passwords do not match."===(null===(t=s.password)||void 0===t?void 0:t[0])&&delete s.password,delete s[e],u(s))}(s),w(i)}return(0,c.jsxs)("form",{className:"user-settings-form",id:a,noValidate:!0,onSubmit:function(s){s.preventDefault(),async function(){try{y(!0);const t=await fetch(rt.routes.api_web_current_user_path(),{body:JSON.stringify(p),headers:{"Content-Type":"application/json","X-CSRF-Token":h.T},method:"PUT"}),n=await t.json();n.errors?u(n.errors):(i===(s=n).email&&r===s.username||(0,k.yV)(s),e((0,m.JP)(s)),e((0,x.g)()))}catch(e){console.error(e)}finally{y(!1)}var s}()},children:[(0,c.jsx)(d,{formErrors:l,formValues:p,onInputChange:E}),(0,c.jsx)(g,{isVisible:o}),(0,c.jsx)(b,{formErrors:l,formValues:p,onInputChange:E}),(0,c.jsx)("div",{className:"user-settings-form-actions",children:(0,c.jsx)(n.Z,{className:"primary-filled",formId:a,isLoading:j,children:"Save"})})]})}var y=t(20745);class E extends i.default{constructor(e){super(e),this.formRoot=(0,y.s)(this.el.querySelector(".user-settings-form-container"))}remove(){super.remove(),this.formRoot.unmount()}render(){this.formRoot.render((0,c.jsx)(f.zt,{store:redux,children:(0,c.jsx)(j,{})}))}}},86371:(e,s,t)=>{t.d(s,{g:()=>n});var i=t(50791);function n(){return(0,i.Yz)({text:"Changes saved.",type:"success"})}}}]);
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.