diff --git a/lib/labelmaker_web/constants.ex b/lib/labelmaker_web/constants.ex index 0c8e4f8..fc99daa 100644 --- a/lib/labelmaker_web/constants.ex +++ b/lib/labelmaker_web/constants.ex @@ -1,6 +1,7 @@ defmodule LabelmakerWeb.Constants do @defaults %{ label: "", + link: "", font: "Helvetica", color: "black", outline: "white", diff --git a/lib/labelmaker_web/live/home.ex b/lib/labelmaker_web/live/home.ex index 3ecaf58..2983be0 100644 --- a/lib/labelmaker_web/live/home.ex +++ b/lib/labelmaker_web/live/home.ex @@ -39,13 +39,6 @@ defmodule LabelmakerWeb.Home do end def render(assigns) do - assigns = - assign( - assigns, - :label_too_long, - String.length(assigns.label) > Constants.max_label_length() - ) - preview_background = case assigns.preview_bg do "r" -> "bg-[linear-gradient(to_right,_black_33%,_white_67%)]" @@ -54,13 +47,20 @@ defmodule LabelmakerWeb.Home do _ -> "bg-[linear-gradient(to_right,_black_33%,_white_67%)]" end + assigns = + assign( + assigns, + label_too_long: String.length(assigns.label) > Constants.max_label_length(), + preview_background: preview_background + ) + ~H"""

Labelmaker

<%= if @label_too_long do %> @@ -169,16 +169,15 @@ defmodule LabelmakerWeb.Home do
+ -
- -
- + + """ end diff --git a/lib/labelmaker_web/tools.ex b/lib/labelmaker_web/tools.ex index c5340ad..31ca807 100644 --- a/lib/labelmaker_web/tools.ex +++ b/lib/labelmaker_web/tools.ex @@ -1,8 +1,16 @@ defmodule LabelmakerWeb.Tools do + # for the ~p sigil + use Phoenix.VerifiedRoutes, + endpoint: LabelmakerWeb.Endpoint, + router: LabelmakerWeb.Router, + statics: LabelmakerWeb.static_paths() + alias LabelmakerWeb.Constants def process_parameters(parameters) do %{"label" => label, "size" => size} = parameters + + link = ~p"/#{label}?#{Map.take(parameters, ["color", "font", "outline", "size"])}" line_breaks = Regex.scan(~r/#{Regex.escape("\\n")}/, label) |> length() size = String.to_integer(size) @@ -16,6 +24,9 @@ defmodule LabelmakerWeb.Tools do do: {:label, String.slice(label, 0, Constants.max_label_length() + 1)}, else: {:label, label} + {:link, _} -> + {:link, link} + {:preview_height, _} -> {:preview_height, size + size * line_breaks}