<%# locals: (user:, placement: "right-start", offset: 16, intro_mode: false) %>

<% intro_mode = local_assigns.fetch(:intro_mode, false) %>

<div data-testid="user-menu">
  <%= render DS::Menu.new(
        variant: "avatar",
        avatar_url: user.profile_image&.variant(:small)&.url,
        initials: user.initials,
        placement: placement,
        offset: offset
      ) do |menu| %>
    <% if intro_mode %>
      <% menu.with_button do %>
        <%= render DS::Button.new(variant: "icon", icon: "settings", data: { DS__menu_target: "button" }) %>
      <% end %>
    <% end %>
    <%= menu.with_header do %>
      <div class="px-4 py-3 flex items-center gap-3">
        <div class="w-9 h-9 shrink-0">
          <%= render "settings/user_avatar", avatar_url: user.profile_image&.variant(:small)&.url, initials: user.initials, lazy: true %>
        </div>

        <div class="overflow-hidden text-ellipsis text-sm">
          <p class="font-medium"><%= user.display_name %></p>
          <% if user.display_name != user.email %>
            <p class="text-secondary"><%= user.email %></p>
          <% end %>
        </div>
      </div>

      <% if self_hosted? %>
        <div class="px-4 py-3 border-t border-tertiary">
          <p class="text-sm">
            <span class="font-medium text-primary">Version:</span>
            <%= link_to Sure.version.to_release_tag, "https://github.com/we-promise/sure/releases/tag/#{Sure.version.to_release_tag}", target: "_blank", class: "hover:underline" %>

            <% if Sure.commit_sha.present? %>
              (<%= link_to Sure.commit_sha.first(7), "https://github.com/we-promise/sure/commit/#{Sure.commit_sha}", target: "_blank", class: "hover:underline" %>)
            <% end %>
          </p>
        </div>
      <% end %>
    <% end %>

    <% menu.with_item(
      variant: "link",
      text: "Settings",
      icon: "settings",
      href: intro_mode ? settings_profile_path : accounts_path(return_to: request.fullpath)
    ) %>
    <% menu.with_item(variant: "link", text: "Changelog", icon: "box", href: changelog_path) %>

    <% if self_hosted? && !intro_mode %>
      <% menu.with_item(variant: "link", text: "Feedback", icon: "megaphone", href: feedback_path) %>
    <% end %>
    <% menu.with_item(variant: "link", text: "Contact", icon: "message-square-more", href: "https://discord.gg/36ZGBsxYEK", target: "_blank", rel: "noopener noreferrer") %>

    <% menu.with_item(variant: "divider") %>

    <% menu.with_item(variant: "button", text: "Log out", icon: "log-out", href: session_path(Current.session), method: :delete) %>
  <% end %>
</div>
