Skip to content

Commit

Permalink
feat: resolve requestes
Browse files Browse the repository at this point in the history
  • Loading branch information
AfonsoMartins26 committed Jan 8, 2025
1 parent cd4ee0d commit 13cef73
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 26 deletions.
12 changes: 6 additions & 6 deletions lib/cesium_link_web/live/link_live/index.ex
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,10 @@ defmodule CesiumLinkWeb.LinkLive.Index do
{:noreply, socket |> push_navigate(to: ~p"/admin/links")}
end

def publish_in_future?(link) do
case link.publish_at do
nil -> false
publish_at -> DateTime.compare(publish_at, DateTime.utc_now()) == :gt
end
end
def published?(%Link{publish_at: nil}), do: true

def published?(%Link{publish_at: publish_at}),
do: DateTime.compare(publish_at, DateTime.utc_now()) == :lt

defp publish_in_future?(link), do: not published?(link)
end
31 changes: 11 additions & 20 deletions lib/cesium_link_web/live/link_live/index.html.heex
Original file line number Diff line number Diff line change
Expand Up @@ -16,63 +16,54 @@

<.table id="links" rows={@streams.links} phx-hook="Sorting">
<:col :let={{_id, link}}>
<% publish_future = publish_in_future?(link) %>
<.icon name="hero-bars-3 cursor-pointer ml-4" class={"handle w-5 h-5 #{if publish_future, do: "opacity-50"}"} />
<.icon name="hero-bars-3 cursor-pointer ml-4" class={"handle w-5 h-5 #{if publish_in_future?(link), do: "opacity-50"}"} />
</:col>

<:col :let={{_id, link}} label="Name">
<% publish_future = publish_in_future?(link) %>
<p class={"font-semibold text-zinc-900 #{if publish_future, do: "opacity-50"}"}><%= link.name %></p>
<p class={"font-semibold text-zinc-900 #{if publish_in_future?(link), do: "opacity-50"}"}><%= link.name %></p>
</:col>

<:col :let={{_id, link}} label="Emoji">
<% publish_future = publish_in_future?(link) %>
<span class={if publish_future, do: "opacity-50"}>
<span class={if publish_in_future?(link), do: "opacity-50"}>
<.emoji code={link.emoji} />
</span>
</:col>

<:col :let={{_id, link}} label="URL">
<% publish_future = publish_in_future?(link) %>
<.link target="_blank" class={"hover:text-brand hover:underline #{if publish_future, do: "opacity-50"}"} navigate={link.url}>
<.link target="_blank" class={"hover:text-brand hover:underline #{if publish_in_future?(link), do: "opacity-50"}"} navigate={link.url}>
<%= truncate_elipsis(link.url, 50) %>
</.link>
</:col>

<:col :let={{_id, link}} label="Time Left">
<% publish_future = publish_in_future?(link) %>
<%= if publish_future do %>
<div id="timer-countdown" phx-hook="Timer" data-finish-time={DateTime.to_unix(link.publish_at)}>
<%= if publish_in_future?(link) do %>
<div id="timer-countdown" phx-hook="Timer" data-finish-time={DateTime.to_unix(link.publish_at)} class="opacity-50">
00:00:00
</div>
<% else %>
<h1>No time</h1>
<h1>No time set</h1>
<% end %>
</:col>

<:col :let={{_id, link}} label="Clicks">
<% publish_future = publish_in_future?(link) %>
<p class={if publish_future, do: "opacity-50"}>
<p class={if publish_in_future?(link), do: "opacity-50"}>
<%= link.visits %>
</p>
</:col>

<:col :let={{_id, link}} label="Attention">
<% publish_future = publish_in_future?(link) %>
<input type="checkbox" disabled={true} checked={link.attention} class={"self-center block rounded-md text-gray-600 #{if publish_future, do: "opacity-50"}"} />
<input type="checkbox" disabled={true} checked={link.attention} class={"self-center block rounded-md text-gray-600 #{if publish_in_future?(link), do: "opacity-50"}"} />
</:col>

<:action :let={{_id, link}}>
<% publish_future = publish_in_future?(link) %>
<.link patch={~p"/admin/links/#{link}/edit"}>
<.icon name="hero-pencil" class={"w-5 h-5 #{if publish_future, do: "opacity-50"}"} />
<.icon name="hero-pencil" class={"w-5 h-5 #{if publish_in_future?(link), do: "opacity-50"}"} />
</.link>
</:action>

<:action :let={{_id, link}}>
<% publish_future = publish_in_future?(link) %>
<.link patch={~p"/admin/links/#{link}/archive"}>
<.icon name="hero-archive-box" class={"w-5 h-5 #{if publish_future, do: "opacity-50"}"} />
<.icon name="hero-archive-box" class={"w-5 h-5 #{if publish_in_future?(link), do: "opacity-50"}"} />
</.link>
</:action>
</.table>
Expand Down

0 comments on commit 13cef73

Please sign in to comment.