From dc6d267245273d806baa870e7a7b3a8259ffa7e2 Mon Sep 17 00:00:00 2001 From: Alex Lion Date: Mon, 30 Dec 2024 20:45:12 -0500 Subject: [PATCH] Add hyperlinks in messages --- CHANGELOG.md | 2 ++ lib/claper_web/helpers.ex | 17 +++++++++++++++++ .../event_live/manageable_post_component.ex | 2 +- .../live/event_live/post_component.ex | 8 +++----- 4 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 lib/claper_web/helpers.ex diff --git a/CHANGELOG.md b/CHANGELOG.md index 6cb9160..9a6c31d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ ### Fixes and improvements - Improve performance of presentation to load slides faster +- Fix manager layout on small screens +- Add clickable hyperlinks in messages ### v.2.3.0 diff --git a/lib/claper_web/helpers.ex b/lib/claper_web/helpers.ex new file mode 100644 index 0000000..787e4d9 --- /dev/null +++ b/lib/claper_web/helpers.ex @@ -0,0 +1,17 @@ +defmodule ClaperWeb.Helpers do + def format_body(body) do + url_regex = ~r/(https?:\/\/[^\s]+)/ + + body + |> String.split(url_regex, include_captures: true) + |> Enum.map(fn + "http" <> _rest = url -> + Phoenix.HTML.raw( + ~s(#{url}) + ) + + text -> + text + end) + end +end diff --git a/lib/claper_web/live/event_live/manageable_post_component.ex b/lib/claper_web/live/event_live/manageable_post_component.ex index a41c3c3..d5256c8 100644 --- a/lib/claper_web/live/event_live/manageable_post_component.ex +++ b/lib/claper_web/live/event_live/manageable_post_component.ex @@ -119,7 +119,7 @@ defmodule ClaperWeb.EventLive.ManageablePostComponent do <% end %>

- <%= @post.body %> + <%= ClaperWeb.Helpers.format_body(@post.body) %>

diff --git a/lib/claper_web/live/event_live/post_component.ex b/lib/claper_web/live/event_live/post_component.ex index b38dc44..3d54dc3 100644 --- a/lib/claper_web/live/event_live/post_component.ex +++ b/lib/claper_web/live/event_live/post_component.ex @@ -76,7 +76,7 @@ defmodule ClaperWeb.EventLive.PostComponent do ) %> -

<%= @post.body %>

+

<%= ClaperWeb.Helpers.format_body(@post.body) %>

<%= if @post.like_count > 0 do %> @@ -176,7 +176,7 @@ defmodule ClaperWeb.EventLive.PostComponent do
<% end %> -

<%= @post.body %>

+

<%= ClaperWeb.Helpers.format_body(@post.body) %>

<%= if @reaction_enabled do %> @@ -273,7 +273,5 @@ defmodule ClaperWeb.EventLive.PostComponent do end)) end - defp pinned?(post) do - post.pinned == true - end + defp pinned?(post), do: post.pinned end