Helpers for {:noreply, socket} that can be used with pipes

Currently we have to write this way which is a bit convoluted

socket =
   socket
  |> assign(valid: true)
{:noreply, socket}

Please include functions to write like for the most popular values just two for :ok and :noreply make my file look much cleaner

socket
|> assign(valid: true)
|> noreply()

I can add it myself as helpers but would be nice to have it included in the framework

You could do this:

{:noreply, assign(socket, :valid, true)}
1 Like

I know but I just refactored this:

  def handle_event("validate",  %{"command" => command} = params, socket) do
    socket = 
      socket
      |> assign(valid: valid_code?(command, socket.assigns.binding))
    {:noreply, push_patch(socket, to: self_path(socket, socket.assigns.menu.node, params))}
  end

  @impl true
  def handle_info({:node_redirect, node}, socket) do
    {:noreply, push_redirect(socket, to: self_path(socket, node, socket.assigns.params))}
  end

To


  @impl true
  def handle_event("validate", %{"command" => command} = params, socket) do
    socket
    |> assign(valid: valid_code?(command, socket.assigns.binding))
    |>  push_patch(to: self_path(socket, socket.assigns.menu.node, params))
    |> noreply() 
  end

  def handle_info({:node_redirect, node}, socket) do
    socket
    |> push_redirect(to: self_path(socket, node, socket.assigns.params))
    |> noreply() 
  end

Its much more readable. I was even thinking to create a library for that, but I it would be good to have it inside phoenix

  def noreply(socket), do: {:noreply, socket}
1 Like