diff --git a/lib/clip_web/live/board_live.ex b/lib/clip_web/live/board_live.ex index c70036f..f0c425d 100644 --- a/lib/clip_web/live/board_live.ex +++ b/lib/clip_web/live/board_live.ex @@ -18,21 +18,30 @@ defmodule ClipWeb.BoardLive do {:ok, assign(socket, snippet: "")} end - @impl true - def handle_event("normalize", _, %{"snippet" => snippet} = socket) do + defp normalize(pnumber, local_pref \\ "0351", country_pref \\ "0049") do + pnumber + |> String.replace(~r/^\s*\+/, "00") + |> String.replace(~r/\D/, "") + |> String.replace(~r/^00+/, "00") + |> String.replace(~r/^(?=[1-9])/, local_pref) + |> String.replace(~r/^0(?=[1-9])/, country_pref) + end - Phoenix.PubSub.broadcast(Clip.PubSub, "everybody", {:snippet_pasted, %{"snippet" => snippet}}) + @impl true + def handle_event("normalize", _, %{assigns: %{snippet: snippet}} = socket) do + norm_snipp = normalize(snippet) + Phoenix.PubSub.broadcast(Clip.PubSub, "everybody", {:snippet_pasted, %{snippet: norm_snipp}}) {:noreply, assign(socket, snippet: snippet)} end @impl true def handle_event("paste", %{"snippet" => snippet}, socket) do - Phoenix.PubSub.broadcast(Clip.PubSub, "everybody", {:snippet_pasted, %{"snippet" => snippet}}) + Phoenix.PubSub.broadcast(Clip.PubSub, "everybody", {:snippet_pasted, %{snippet: snippet}}) {:noreply, assign(socket, snippet: snippet)} end @impl true - def handle_info({:snippet_pasted, %{"snippet" => snippet}}, socket) do + def handle_info({:snippet_pasted, %{snippet: snippet}}, socket) do {:noreply, assign(socket, snippet: snippet)} end end