adding :ets to keep track of current value
This commit is contained in:
@ -2,6 +2,7 @@ defmodule ClipWeb.BoardLive do
|
||||
use ClipWeb, :live_view
|
||||
|
||||
alias Clip.Accounts
|
||||
alias Clip.Board
|
||||
|
||||
@impl true
|
||||
def render(assigns) do
|
||||
@ -17,29 +18,20 @@ defmodule ClipWeb.BoardLive do
|
||||
@impl true
|
||||
def mount(_params, session, socket) do
|
||||
user = Accounts.get_user_by_session_token(session |> Map.get("user_token"))
|
||||
Phoenix.PubSub.subscribe(Clip.PubSub, user.email)
|
||||
{:ok, assign(socket, snippet: "", current_user: user)}
|
||||
end
|
||||
|
||||
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)
|
||||
{:ok, snippet} = Board.init(user)
|
||||
{:ok, assign(socket, snippet: snippet, current_user: user)}
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_event("normalize", _, %{assigns: %{snippet: snippet, current_user: user}} = socket) do
|
||||
norm_snipp = normalize(snippet)
|
||||
Phoenix.PubSub.broadcast(Clip.PubSub, user.email, {:snippet_pasted, %{snippet: norm_snipp}})
|
||||
norm_snipp = Board.normalize(snippet)
|
||||
Board.paste(user, norm_snipp)
|
||||
{:noreply, assign(socket, snippet: snippet)}
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_event("paste", %{"snippet" => snippet}, %{assigns: %{current_user: user}} = socket) do
|
||||
Phoenix.PubSub.broadcast(Clip.PubSub, user.email, {:snippet_pasted, %{snippet: snippet}})
|
||||
Board.paste(user, snippet)
|
||||
{:noreply, assign(socket, snippet: snippet)}
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user