<div id={@id} class="col-12 col-sm-10 col-md-6 col-lg-5 col-xl-4 col-xxl-3 mt-1"> <h3>Change password</h3> <%= form_for @changeset, "#", [phx_change: :validate, phx_submit: :save, phx_target: @myself], fn f -> %> <%= label f, :password, "New password", class: "form-label" %> <div class="inner-addon left-addon mb-3" phx-feedback-for={input_id(f, :password)}> <i class="bi bi-key icon is-left text-muted fs-5"></i> <%= password_input f, :password, value: input_value(f, :password), class: input_class(f, :password, "form-control"), maxlength: User.max_password, phx_debounce: "500", aria_describedby: error_ids(f, :password) %> <%= error_tag f, :password %> </div> <%= label f, :password_confirmation, "Confirm new password", class: "form-label" %> <div class="inner-addon left-addon mb-3" phx-feedback-for={input_id(f, :password_confirmation)}> <i class="bi bi-key-fill icon is-left text-muted fs-5"></i> <%= password_input f, :password_confirmation, value: input_value(f, :password_confirmation), class: input_class(f, :password_confirmation, "form-control"), maxlength: User.max_password, aria_describedby: error_ids(f, :password_confirmation) %> <%= error_tag f, :password_confirmation %> </div> <%= label f, :current_password, class: "form-label" %> <div class="inner-addon left-addon mb-3"> <i class="bi bi-lock icon is-left text-muted fs-5"></i> <%= password_input f, :current_password, value: input_value(f, :current_password), id: "user_password_current_password", class: "form-control" %> </div> <div class="mb-3"> <%= submit "Change password", class: "btn btn-primary", disabled: !@changeset.valid? || input_value(f, :current_password) == "", aria_disabled: (!@changeset.valid? || input_value(f, :current_password) == "") && "true" || false, phx_disable_with: "Saving..." %> </div> <% end %> <%# hidden form for initial login after registration %> <%= form_for :user, Routes.user_session_path(@socket, :create), [phx_trigger_action: @trigger_submit, id: "settings_pw_change_trigger"], fn f -> %> <%= hidden_input f, :params_token, value: Phoenix.Token.encrypt(Shift73kWeb.Endpoint, "login_params", @login_params) %> <% end %> </div>