defmodule LabelmakerWeb.Home do use LabelmakerWeb, :live_view alias LabelmakerWeb.Constants alias LabelmakerWeb.Tools def mount(_params, _session, socket) do assigns = Constants.defaults() |> Map.replace(:label, "") |> Map.merge(Constants.preview()) |> Enum.to_list() { :ok, assign( socket, assigns ) } end def handle_event("update_label", params, socket) do assigns = params |> Map.merge(Constants.stringview()) |> Tools.process_parameters() |> Enum.to_list() {:noreply, assign(socket, assigns)} end def handle_event("make_label", params, socket) do {:noreply, redirect(socket, to: ~p"/#{params["label"]}?#{Map.drop(params, ["label"])}")} end def render(assigns) do ~H"""

Labelmaker

<%= for {str, i} <- Enum.with_index(@preview_text) do %> {str} {if i < length(@preview_text) - 1, do: raw("
")} <% end %>
""" end end