Skip to content

Commit

Permalink
Handle created link_preview message, improve view logic
Browse files Browse the repository at this point in the history
  • Loading branch information
jtormey committed Aug 27, 2024
1 parent 8ec2c65 commit a5f1977
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 5 deletions.
2 changes: 1 addition & 1 deletion lib/lax_web/live/chat_live.ex
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ defmodule LaxWeb.ChatLive do
{:noreply, update(socket, :chat, &Chat.receive_deleted_message(&1, channel_message_ids))}
end

def handle_info({:link_preview, :updated, link_preview}, socket) do
def handle_info({:link_preview, _tag, link_preview}, socket) do
{:noreply, update(socket, :chat, &Chat.receive_link_preview(&1, link_preview))}
end

Expand Down
15 changes: 12 additions & 3 deletions lib/lax_web/live/chat_live/chat_components.ex
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ defmodule LaxWeb.ChatLive.Components do
</div>
<.message_hover_actions on_delete={@on_delete} on_report={@on_report} />
</div>
<.message_link_previews :if={@message.link_previews != []} message={@message} />
<.message_link_previews :if={show_link_previews?(@message)} message={@message} />
</div>
"""
end
Expand All @@ -310,7 +310,7 @@ defmodule LaxWeb.ChatLive.Components do
</div>
<.message_hover_actions on_delete={@on_delete} on_report={@on_report} />
</div>
<.message_link_previews :if={@message.link_previews != []} message={@message} />
<.message_link_previews :if={show_link_previews?(@message)} message={@message} />
</div>
"""
end
Expand All @@ -337,6 +337,7 @@ defmodule LaxWeb.ChatLive.Components do
<div class="ml-10 mt-2 space-y-2">
<.message_link_preview
:for={link_preview <- @message.link_previews}
:if={show_link_preview?(link_preview)}
link_preview={link_preview}
/>
</div>
Expand All @@ -352,7 +353,7 @@ defmodule LaxWeb.ChatLive.Components do
<p class="text-sm text-zinc-200 font-semibold">
<%= @link_preview.page_title %>
</p>
<p class="text-xs text-zinc-400">
<p :if={@link_preview.page_description} class="text-xs text-zinc-400">
<%= @link_preview.page_description %>
</p>
<img
Expand All @@ -365,6 +366,14 @@ defmodule LaxWeb.ChatLive.Components do
"""
end

defp show_link_previews?(message) do
message.link_previews != [] and Enum.any?(message.link_previews, &show_link_preview?/1)
end

defp show_link_preview?(link_preview) do
link_preview.state == :done and link_preview.page_title != nil
end

defp linkify_text(text) do
Lynx.HTML.linkify_text(text, link_attrs: [target: "_blank", class: "text-sky-400"])
end
Expand Down
2 changes: 1 addition & 1 deletion lib/lax_web/live/direct_message_live.ex
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ defmodule LaxWeb.DirectMessageLive do
{:noreply, update(socket, :chat, &Chat.receive_deleted_message(&1, channel_message_ids))}
end

def handle_info({:link_preview, :updated, link_preview}, socket) do
def handle_info({:link_preview, _tag, link_preview}, socket) do
{:noreply, update(socket, :chat, &Chat.receive_link_preview(&1, link_preview))}
end

Expand Down

0 comments on commit a5f1977

Please sign in to comment.