diff --git a/lib/outlook_web/components/html_tree_component.ex b/lib/outlook_web/components/html_tree_component.ex index e1f38c2..d63ca7c 100644 --- a/lib/outlook_web/components/html_tree_component.ex +++ b/lib/outlook_web/components/html_tree_component.ex @@ -3,6 +3,7 @@ defmodule OutlookWeb.HtmlTreeComponent do use Phoenix.Component # use OutlookWeb, :html import OutlookWeb.CoreComponents + import OutlookWeb.ViewHelpers alias Phoenix.LiveView.JS @@ -15,10 +16,14 @@ defmodule OutlookWeb.HtmlTreeComponent do end def attributes(assigns) do - ~H"  <%= @name %>="<%= @value %>"" + ~H"  <%= @name %>="<%= elipsed_text(@value, 16) %>"" end - def tnode(%{node: %{status: _}} = assigns), do: ~H"<%= String.slice(@node.content, 0..20) %><%= if String.length(@node.content) > 20 do %>...<% end %>
" + def tnode(%{node: %{status: _}} = assigns) do + ~H""" + <%= elipsed_text(@node.content, 30) %>
+ """ + end def tnode(assigns) when assigns.node.type == :element do ~H""" @@ -32,7 +37,7 @@ defmodule OutlookWeb.HtmlTreeComponent do def tnode(assigns) when assigns.node.type == :text do ~H""" - "<%= String.slice(@node.content, 0..35) %><%= if String.length(@node.content) > 35 do %>..."<% end %>
+ "<%= elipsed_text(@node.content, 30) %>
""" end diff --git a/lib/outlook_web/live/article_live/new_components.ex b/lib/outlook_web/live/article_live/new_components.ex index 8b875f2..7dffb8a 100644 --- a/lib/outlook_web/live/article_live/new_components.ex +++ b/lib/outlook_web/live/article_live/new_components.ex @@ -45,7 +45,7 @@ defmodule OutlookWeb.ArticleLive.NewComponents do ~H"""
Review Translation Units
-
+
<.render_tree tree={@raw_internal_tree} >
diff --git a/lib/outlook_web/view_helpers.ex b/lib/outlook_web/view_helpers.ex index 91e6e65..4a6d6c9 100644 --- a/lib/outlook_web/view_helpers.ex +++ b/lib/outlook_web/view_helpers.ex @@ -18,4 +18,13 @@ defmodule OutlookWeb.ViewHelpers do def strip_links(html) do raise "Yet to be implemented!" end + + def elipsed_text(text, length) do + if String.length(text) < length do + text + else + part_length = (length - 3) / 2 |> trunc() + "#{String.slice(text, 0..part_length)} … #{String.slice(text, -part_length..-1)}" + end + end end