<div class="row justify-content-center">
  <div class="col-11 col-sm-8 col-md-6 col-lg-5 col-xl-4 col-xxl-3">

  <h2>
    <i class="bi bi-journal-plus me-1"></i> Register
  </h2>
  <p class="lead">Create an account to manage your work shifts with us.</p>

  <.form let={f} for={@changeset} phx-change="validate" phx-submit="save" novalidate id="reg_form">

    <%= label f, :email, class: "form-label" %>
    <div class="inner-addon left-addon mb-3" phx-feedback-for={input_id(f, :email)}>
      <i class="bi bi-at icon is-left text-muted fs-5"></i>
      <%= 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: "blur",
          aria_describedby: error_ids(f, :email)
        %>
      <%= error_tag f, :email %>
    </div>

    <%= label f, :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: "250",
          aria_describedby: error_ids(f, :password)
        %>
      <%= error_tag f, :password %>
    </div>

    <div class="mb-3">
      <%= submit (@trigger_submit && "Saving..." || "Register"),
          class: "btn btn-primary",
          disabled: @trigger_submit || !@changeset.valid?,
          aria_disabled: (@trigger_submit || !@changeset.valid?) && "true" || false,
          phx_disable_with: "Saving..."
        %>
    </div>

  </.form>

  <p>
    <%= link "Log in", to: Routes.user_session_path(@socket, :new) %> |
    <%= link "Forgot your password?", to: Routes.user_reset_password_path(@socket, :new) %>
  </p>

  <%# hidden form for initial login after registration %>
  <%= form_for :user, Routes.user_session_path(@socket, :create), [phx_trigger_action: @trigger_submit, id: "reg_trigger"], fn f -> %>
    <%= hidden_input f, :params_token, value: Phoenix.Token.encrypt(Shift73kWeb.Endpoint, "login_params", @login_params) %>
  <% end %>

  </div>
</div>
