defmodule ToweropsWeb.ChangelogLive do
  use ToweropsWeb, :live_view

  @impl true
  def mount(_params, _session, socket) do
    entries = ToweropsWeb.ChangelogParser.parse()
    {:ok, assign(socket, entries: entries, page_title: "What's New", active_page: "changelog")}
  end

  @impl true
  def render(assigns) do
    ~H"""
    <div class="mx-auto max-w-3xl px-4 py-8">
      <h1 class="text-3xl font-bold mb-2">What's New</h1>
      <p class="text-base-content/60 mb-8">Latest updates and improvements to TowerOps.</p>

      <div class="space-y-8">
        <div :for={entry <- @entries} class="relative pl-8 border-l-2 border-primary/20">
          <div class="absolute -left-[9px] top-1 w-4 h-4 rounded-full bg-primary border-2 border-base-100" />
          <div class="mb-1">
            <span class="badge badge-ghost badge-sm font-mono">
              {Calendar.strftime(entry.date, "%b %d, %Y")}
            </span>
          </div>
          <h2 :if={entry.title} class="text-lg font-semibold mb-2">{entry.title}</h2>
          <ul :if={entry.items != []} class="list-disc list-inside space-y-1 text-base-content/80 text-sm">
            <li :for={item <- entry.items}>{item}</li>
          </ul>
        </div>
      </div>
    </div>
    """
  end
end
