<div class="w-full flex flex-col space-y-8 justify-center items-center">
  <h1 class="title text-2xl title-primary-500">
    <%= gettext("Invites") %>
  </h1>

  <%= if @invites |> Enum.empty?() do %>
    <h1 class="title text-xl text-primary-600">
      <%= gettext("No invites") %>
      <%= display_emoji("😔") %>
    </h1>

    <.link patch={Routes.invite_index_path(Endpoint, :new)} class="btn btn-primary">
      <%= dgettext("actions", "Invite someone new!") %>
    </.link>
  <% else %>
    <.link patch={Routes.invite_index_path(Endpoint, :new)} class="btn btn-primary">
      <%= dgettext("actions", "Create Invite") %>
    </.link>
  <% end %>

  <div class="w-full flex flex-row flex-wrap justify-center items-stretch">
    <%= for invite <- @invites do %>
      <.invite_card invite={invite}>
        <:code_actions>
          <form phx-submit="copy_to_clipboard">
            <button
              type="submit"
              class="mx-2 my-1 btn btn-primary"
              phx-click={JS.dispatch("cannery:clipcopy", to: "#code-#{invite.id}")}
            >
              <%= dgettext("actions", "Copy to clipboard") %>
            </button>
          </form>
        </:code_actions>
        <.link
          patch={Routes.invite_index_path(Endpoint, :edit, invite)}
          class="text-primary-600 link"
          data-qa={"edit-#{invite.id}"}
        >
          <i class="fa-fw fa-lg fas fa-edit"></i>
        </.link>

        <.link
          href="#"
          class="text-primary-600 link"
          phx-click="delete_invite"
          phx-value-id={invite.id}
          data-confirm={
            dgettext("prompts", "Are you sure you want to delete the invite for %{name}?",
              name: invite.name
            )
          }
          data-qa={"delete-#{invite.id}"}
        >
          <i class="fa-fw fa-lg fas fa-trash"></i>
        </.link>

        <%= if invite.disabled_at |> is_nil() do %>
          <a href="#" class="btn btn-primary" phx-click="disable_invite" phx-value-id={invite.id}>
            <%= dgettext("actions", "Disable") %>
          </a>
        <% else %>
          <a href="#" class="btn btn-primary" phx-click="enable_invite" phx-value-id={invite.id}>
            <%= dgettext("actions", "Enable") %>
          </a>
        <% end %>

        <%= if invite.disabled_at |> is_nil() and not (invite.uses_left |> is_nil()) do %>
          <a
            href="#"
            class="btn btn-primary"
            phx-click="set_unlimited"
            phx-value-id={invite.id}
            data-confirm={
              dgettext("prompts", "Are you sure you want to make %{name} unlimited?",
                name: invite.name
              )
            }
          >
            <%= dgettext("actions", "Set Unlimited") %>
          </a>
        <% end %>
      </.invite_card>
    <% end %>
  </div>

  <%= unless @admins |> Enum.empty?() do %>
    <hr class="hr" />

    <h1 class="title text-2xl text-primary-600">
      <%= gettext("Admins") %>
    </h1>

    <div class="w-full flex flex-row flex-wrap justify-center items-stretch">
      <%= for admin <- @admins do %>
        <.user_card user={admin}>
          <.link
            href="#"
            class="text-primary-600 link"
            phx-click="delete_user"
            phx-value-id={admin.id}
            data-confirm={
              dgettext(
                "prompts",
                "Are you sure you want to delete %{email}? This action is permanent!",
                email: admin.email
              )
            }
          >
            <i class="fa-fw fa-lg fas fa-trash"></i>
          </.link>
        </.user_card>
      <% end %>
    </div>
  <% end %>

  <%= unless @users |> Enum.empty?() do %>
    <hr class="hr" />

    <h1 class="title text-2xl text-primary-600">
      <%= gettext("Users") %>
    </h1>

    <div class="w-full flex flex-row flex-wrap justify-center items-stretch">
      <%= for user <- @users do %>
        <.user_card user={user}>
          <.link
            href="#"
            class="text-primary-600 link"
            phx-click="delete_user"
            phx-value-id={user.id}
            data-confirm={
              dgettext(
                "prompts",
                "Are you sure you want to delete %{email}? This action is permanent!",
                email: user.email
              )
            }
          >
            <i class="fa-fw fa-lg fas fa-trash"></i>
          </.link>
        </.user_card>
      <% end %>
    </div>
  <% end %>
</div>

<%= if @live_action in [:new, :edit] do %>
  <.modal return_to={Routes.invite_index_path(Endpoint, :index)}>
    <.live_component
      module={CanneryWeb.InviteLive.FormComponent}
      id={@invite.id || :new}
      title={@page_title}
      action={@live_action}
      invite={@invite}
      return_to={Routes.invite_index_path(Endpoint, :index)}
      current_user={@current_user}
    />
  </.modal>
<% end %>
