<%= form_for @changeset, "#", [ phx_target: @myself, phx_change: "validate", phx_submit: "save" ], fn f -> %>
<%= label f, :email, class: "form-label" %>
<%= icon_div @socket, "bi-at", [class: "icon"] %> <%= email_input f, :email, value: input_value(f, :email), class: input_class(f, :email, "form-control"), placeholder: "e.g., babka@73k.us", maxlength: User.max_email, autofocus: true, phx_debounce: "250", aria_describedby: error_id(f, :email) %> <%= error_tag f, :email %>
<%= if Roles.can?(@current_user, %User{}, :edit_role) do %> <%= label f, :role, class: "form-label" %>
<%= icon_div @socket, "bi-shield-shaded", [class: "icon"] %> <%= select f, :role, Enum.map(User.roles(), fn {k, _v} -> {String.capitalize(Atom.to_string(k)), k} end), class: "form-select" %> <%= role_description(input_value(f, :role)) %>
<% else %> <%= hidden_input f, :role, value: input_value(f, :role) %> <% end %>
<%= label f, :password, class: "form-label" %>
<%= icon_div @socket, "bi-key", [class: "icon"] %> <%= password_input f, :password, value: input_value(f, :password), class: input_class(f, :password, "form-control"), maxlength: User.max_password, aria_describedby: error_id(f, :password) %> <%= error_tag f, :password %>
<%= submit "Save", class: "btn btn-primary", disabled: !@changeset.valid?, aria_disabled: !@changeset.valid? && "true" || false, phx_disable_with: "Saving..." %> <% end %>