{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-jsx/src/client/reactive/components/rewritten/conduit/src/components/settings-rp19.js"],"names":["_","ReactiveMorph","userStore","authStore","router","ListErrors","EMPTY_USER","image","username","bio","email","password","Settings","attachedCallback","isDummy","addAExpr","user","createLocalUserCopy","pick","keys","onLogoutButton","logout","target","onSettingsForm","event","assign","updateUser","preventDefault","render","errors"],"mappings":"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","file":"settings-rp19.js","sourcesContent":["'enable rp19-jsx';\n\nimport _ from 'src/external/lodash/lodash.js'\nimport ReactiveMorph from 'src/client/reactive/components/rewritten/conduit/rpComponents/reactiveMorph.js';\nimport userStore from 'src/client/reactive/components/rewritten/conduit/src/stores/userStore.js';\nimport authStore from 'src/client/reactive/components/rewritten/conduit/src/stores/authStore.js';\nimport { router } from 'src/client/reactive/components/rewritten/conduit/rpComponents/router-rp19.js';\nimport ListErrors from 'src/client/reactive/components/rewritten/conduit/src/components/generic/list-errors-rp19.js'\n\nconst EMPTY_USER = {\n  image: '',\n  username: '',\n  bio: '',\n  email: '',\n  password: ''\n};\n\nexport default class Settings extends ReactiveMorph {\n  \n  attachedCallback() {\n    super.attachedCallback().then(() => {\n      if (this.isDummy()) return;\n      this.addAExpr(aexpr(() => userStore.currentUser).onChange(user => \n        this.createLocalUserCopy(user)));\n      this.createLocalUserCopy(userStore.currentUser);\n    });\n  }\n                  \n  createLocalUserCopy(user = EMPTY_USER) {\n    this.user = _.pick(user, _.keys(EMPTY_USER));\n  }\n  \n  onLogoutButton() {\n    authStore.logout()\n      .then(() => router().navigateTo({ target: 'home' }));\n  }\n  \n  onSettingsForm(event) {\n    const user = _.assign({}, this.user);\n    if (!user.password.length)\n      delete user.password;\n    userStore.updateUser(user);\n    event.preventDefault();\n  }\n  \n  render() {\n    return this.user && (\n      <div class=\"settings-page\">\n        <div class=\"container page\">\n          <div class=\"row\">\n            <div class=\"col-md-6 offset-md-3 col-xs-12\">\n\n              <h1 class=\"text-xs-center\">Your Settings</h1>\n              \n              { ListErrors({ errors: userStore.updatingUserErrors }) }\n\n              <form id='settingsForm'>\n                <fieldset>\n\n                  <fieldset class=\"form-group\">\n                    <input\n                      id='imageInput'\n                      class=\"form-control\"\n                      type=\"text\"\n                      placeholder=\"URL of profile picture\"\n                      value={ this.user.image }\n                    />\n                  </fieldset>\n                  \n                  <fieldset class=\"form-group\">\n                    <input\n                      id='usernameInput'\n                      class=\"form-control form-control-lg\"\n                      type=\"text\"\n                      placeholder=\"Username\"\n                      value={ this.user.username }\n                    />\n                  </fieldset>\n                  \n                  <fieldset class=\"form-group\">\n                    <textarea\n                      id='bioTextArea'\n                      class=\"form-control form-control-lg\"\n                      rows=\"8\"\n                      placeholder=\"Short bio about you\"\n                      value={ this.user.bio }\n                    >{ this.user.bio }</textarea>\n                  </fieldset>\n                  \n                  <fieldset class=\"form-group\">\n                    <input\n                      id='emailInput'\n                      class=\"form-control form-control-lg\"\n                      type=\"email\"\n                      placeholder=\"Email\"\n                      value={ this.user.email }\n                    />\n                  </fieldset>\n                  \n                  <fieldset class=\"form-group\">\n                    <input\n                      id='passwordInput'\n                      class=\"form-control form-control-lg\"\n                      type=\"password\"\n                      placeholder=\"New Password\"\n                      value={ this.user.password }\n                    />\n                  </fieldset>\n                  \n                  <button\n                    class=\"btn btn-lg btn-primary pull-xs-right\"\n                    type=\"submit\"\n                    disabled={ userStore.updatingUser }\n                  >\n                    Update Settings\n                  </button>\n                </fieldset>\n              </form>\n              \n              <hr />\n\n              <button\n                id='logoutButton'\n                class=\"btn btn-outline-danger\"\n              >\n                Or click here to logout.\n              </button>\n\n            </div>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}"]}