<%= if @live_action in [:new, :edit, :clone] do %>
  <.live_component
    module={Shift73kWeb.ModalComponent}
    id="modal"
    component={Shift73kWeb.ShiftTemplateLive.FormComponent}
    opts={[
      id: @shift_template.id || :new,
      title: @page_title,
      action: @live_action,
      shift_template: @shift_template,
      current_user: @current_user
    ]}
    />
<% end %>

<%= if @delete_shift_template do %>
  <.live_component
    module={Shift73kWeb.ModalComponent}
    id="modal"
    component={Shift73kWeb.ShiftTemplateLive.DeleteComponent}
    opts={[
      id: @delete_shift_template.id,
      title: "Delete Shift Template",
      delete_shift_template: @delete_shift_template
    ]}
    />
<% end %>


<div class="row justify-content-start justify-content-sm-center">
  <div class="col-md-10 col-xl-10">

    <div class="d-flex flex-column flex-sm-row justify-content-between align-items-start align-items-sm-center">
      <h2 class="mb-3 mb-sm-0">
        <i class="bi bi-clock-history me-1"></i> My Shift Templates
      </h2>
      <%= live_patch to: Routes.shift_template_index_path(@socket, :new), class: "btn btn-primary" do %>
        <i class="bi bi-plus-circle-dotted me-1"></i> New Shift Template
      <% end %>
    </div>


    <div class="row">

      <%= for template <- @shift_templates do %>

        <div class="col-12 col-lg-6">

          <div class="card mt-4">
            <h5 class="card-header d-flex justify-content-between align-items-center">
              <span class="visually-hidden">Subject:</span>
              <i class="bi bi-tag me-1"></i>
              <div class="w-100"><%= template.subject %></div>
              <% fav_icon_data = if template.id == @current_user.fave_shift_template_id, do:
                  {"bi-star-fill", "Unset as favorite", "unset-user-fave-shift-template"}, else:
                  {"bi-star", "Set as favorite", "set-user-fave-shift-template"}
                %>
              <i class={"bi #{elem(fav_icon_data, 0)} text-primary align-self-start ms-2 cursor-pointer"} role="img" aria-hidden="false" aria-label={elem(fav_icon_data, 1)} phx-click={elem(fav_icon_data, 2)} phx-value-id={template.id}></i>
            </h5>
            <div class="card-body">

              <table class="table table-borderless table-nonfluid table-sm">
                <tbody>
                  <tr>
                    <th scope="row" class="text-end">
                      <i class="bi bi-hourglass text-muted"></i>
                      <span class="visually-hidden">Hours:</span>
                    </th>
                    <td>
                      <%= format_shift_time(template.time_start) %>
                      &mdash;
                      <%= format_shift_time(template.time_end) %>
                      <span class="text-muted">
                        <span class="visually-hidden">Shift length:</span>
                        (<%= format_shift_length(template) %>)
                      </span>
                      <span class="valid-feedback d-block text-muted mt-n1">TZ: <%= template.time_zone %></span>
                    </td>
                  </tr>

                  <tr>
                    <th scope="row" class="text-end">
                      <i class="bi bi-geo text-muted"></i>
                      <span class="visually-hidden">Location:</span>
                    </th>
                    <td>
                      <%= if template.location do %>
                        <%= template.location %>
                      <% else %>
                        <span class="text-muted fst-italic">none</span>
                      <% end %>
                    </td>
                  </tr>
                  <tr>
                    <th scope="row" class="text-end">
                      <i class="bi bi-justify-left text-muted"></i>
                      <span class="visually-hidden">Description:</span>
                    </th>
                    <td>
                      <%= if template.description do %>
                        <%= text_to_html template.description %>
                      <% else %>
                        <span class="text-muted fst-italic">none</span>
                      <% end %>
                    </td>
                  </tr>
                </tbody>
              </table>

              <%= if Roles.can?(@current_user, template, :edit) do %>
                <%= live_patch to: Routes.shift_template_index_path(@socket, :edit, template), class: "btn btn-primary btn-sm text-nowrap" do %>
                  <i class="bi bi-pencil me-1"></i> Edit
                <% end %>
              <% end %>

              <%= if Roles.can?(@current_user, template, :clone) do %>
                <%= live_patch to: Routes.shift_template_index_path(@socket, :clone, template), class: "btn btn-outline-primary btn-sm text-nowrap" do %>
                  <i class="bi bi-clipboard-plus me-1"></i> Clone
                <% end %>
              <% end %>

              <%= if Roles.can?(@current_user, template, :delete) do %>
                <button class="btn btn-outline-danger btn-sm text-nowrap" phx-click="delete-modal" phx-value-id={template.id}>
                  <i class="bi bi-trash me-1"></i> Delete
                </button>
              <% end %>

            </div>
          </div>

        </div>

      <% end %>

    </div>

  </div>
</div>