defmodule ClipWeb.BoardLive do use ClipWeb, :live_view alias Clip.Accounts alias Clip.Board @impl true def render(assigns) do ~L"""
""" end @impl true def mount(_params, session, socket) do user = Accounts.get_user_by_session_token(session |> Map.get("user_token")) {: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 = 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 Board.paste(user, snippet) {:noreply, assign(socket, snippet: snippet)} end @impl true def handle_info({:snippet_pasted, %{snippet: snippet}}, socket) do {:noreply, assign(socket, snippet: snippet)} end end