forked from shibao/cannery
		
	update components
This commit is contained in:
		@@ -1,104 +0,0 @@
 | 
				
			|||||||
defmodule LokalWeb.Components.Topbar do
 | 
					 | 
				
			||||||
  @moduledoc """
 | 
					 | 
				
			||||||
  Phoenix.Component for rendering an interactive topbar
 | 
					 | 
				
			||||||
  Assign
 | 
					 | 
				
			||||||
  """
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  use LokalWeb, :component
 | 
					 | 
				
			||||||
  alias LokalWeb.PageLive
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def topbar(assigns) do
 | 
					 | 
				
			||||||
    assigns =
 | 
					 | 
				
			||||||
      %{results: [], title_content: nil, current_user: nil, flash: nil}
 | 
					 | 
				
			||||||
      |> Map.merge(assigns)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ~H"""
 | 
					 | 
				
			||||||
    <header class="mb-8 px-8 py-4 w-full bg-primary-400">
 | 
					 | 
				
			||||||
      <nav role="navigation">
 | 
					 | 
				
			||||||
        <div class="flex flex-row justify-between items-center space-x-4">
 | 
					 | 
				
			||||||
          <div class="flex flex-row justify-start items-center space-x-2">
 | 
					 | 
				
			||||||
            <%= link to: Routes.live_path(LokalWeb.Endpoint, PageLive) do %>
 | 
					 | 
				
			||||||
              <h1 class="leading-5 text-xl text-white hover:underline">
 | 
					 | 
				
			||||||
                Lokal
 | 
					 | 
				
			||||||
              </h1>
 | 
					 | 
				
			||||||
            <% end %>
 | 
					 | 
				
			||||||
            <%= if @title_content do %>
 | 
					 | 
				
			||||||
              <span>|</span>
 | 
					 | 
				
			||||||
              <%= render_slot(@title_content) %>
 | 
					 | 
				
			||||||
            <% end %>
 | 
					 | 
				
			||||||
          </div>
 | 
					 | 
				
			||||||
          <ul class="flex flex-row flex-wrap justify-center items-center
 | 
					 | 
				
			||||||
            text-lg space-x-4 text-lg text-white">
 | 
					 | 
				
			||||||
            <form phx-change="suggest" phx-submit="search">
 | 
					 | 
				
			||||||
              <input
 | 
					 | 
				
			||||||
                type="text"
 | 
					 | 
				
			||||||
                name="q"
 | 
					 | 
				
			||||||
                class="input input-primary"
 | 
					 | 
				
			||||||
                placeholder="Search"
 | 
					 | 
				
			||||||
                list="results"
 | 
					 | 
				
			||||||
                autocomplete="off"
 | 
					 | 
				
			||||||
              />
 | 
					 | 
				
			||||||
              <datalist id="results">
 | 
					 | 
				
			||||||
                <%= for {app, _vsn} <- @results do %>
 | 
					 | 
				
			||||||
                  <option value={app}>
 | 
					 | 
				
			||||||
                    "> <%= app %>
 | 
					 | 
				
			||||||
                  </option>
 | 
					 | 
				
			||||||
                <% end %>
 | 
					 | 
				
			||||||
              </datalist>
 | 
					 | 
				
			||||||
            </form>
 | 
					 | 
				
			||||||
            <%= if @current_user do %>
 | 
					 | 
				
			||||||
              <li>
 | 
					 | 
				
			||||||
                <%= @current_user.email %>
 | 
					 | 
				
			||||||
              </li>
 | 
					 | 
				
			||||||
              <li>
 | 
					 | 
				
			||||||
                <%= link("Settings",
 | 
					 | 
				
			||||||
                  class: "hover:underline",
 | 
					 | 
				
			||||||
                  to: Routes.user_settings_path(LokalWeb.Endpoint, :edit)
 | 
					 | 
				
			||||||
                ) %>
 | 
					 | 
				
			||||||
              </li>
 | 
					 | 
				
			||||||
              <li>
 | 
					 | 
				
			||||||
                <%= link("Log out",
 | 
					 | 
				
			||||||
                  class: "hover:underline",
 | 
					 | 
				
			||||||
                  to: Routes.user_session_path(LokalWeb.Endpoint, :delete),
 | 
					 | 
				
			||||||
                  method: :delete
 | 
					 | 
				
			||||||
                ) %>
 | 
					 | 
				
			||||||
              </li>
 | 
					 | 
				
			||||||
              <%= if function_exported?(Routes, :live_dashboard_path, 2) do %>
 | 
					 | 
				
			||||||
                <li>
 | 
					 | 
				
			||||||
                  <%= link("LiveDashboard",
 | 
					 | 
				
			||||||
                    class: "hover:underline",
 | 
					 | 
				
			||||||
                    to: Routes.live_dashboard_path(LokalWeb.Endpoint, :home)
 | 
					 | 
				
			||||||
                  ) %>
 | 
					 | 
				
			||||||
                </li>
 | 
					 | 
				
			||||||
              <% end %>
 | 
					 | 
				
			||||||
            <% else %>
 | 
					 | 
				
			||||||
              <li>
 | 
					 | 
				
			||||||
                <%= link("Register",
 | 
					 | 
				
			||||||
                  class: "hover:underline",
 | 
					 | 
				
			||||||
                  to: Routes.user_registration_path(LokalWeb.Endpoint, :new)
 | 
					 | 
				
			||||||
                ) %>
 | 
					 | 
				
			||||||
              </li>
 | 
					 | 
				
			||||||
              <li>
 | 
					 | 
				
			||||||
                <%= link("Log in",
 | 
					 | 
				
			||||||
                  class: "hover:underline",
 | 
					 | 
				
			||||||
                  to: Routes.user_session_path(LokalWeb.Endpoint, :new)
 | 
					 | 
				
			||||||
                ) %>
 | 
					 | 
				
			||||||
              </li>
 | 
					 | 
				
			||||||
            <% end %>
 | 
					 | 
				
			||||||
          </ul>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
      </nav>
 | 
					 | 
				
			||||||
      <%= if @flash && @flash |> Map.has_key?(:info) do %>
 | 
					 | 
				
			||||||
        <p class="alert alert-info" role="alert" phx-click="lv:clear-flash" phx-value-key="info">
 | 
					 | 
				
			||||||
          <%= live_flash(@flash, :info) %>
 | 
					 | 
				
			||||||
        </p>
 | 
					 | 
				
			||||||
      <% end %>
 | 
					 | 
				
			||||||
      <%= if @flash && @flash |> Map.has_key?(:error) do %>
 | 
					 | 
				
			||||||
        <p class="alert alert-danger" role="alert" phx-click="lv:clear-flash" phx-value-key="error">
 | 
					 | 
				
			||||||
          <%= live_flash(@flash, :error) %>
 | 
					 | 
				
			||||||
        </p>
 | 
					 | 
				
			||||||
      <% end %>
 | 
					 | 
				
			||||||
    </header>
 | 
					 | 
				
			||||||
    """
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
							
								
								
									
										106
									
								
								lib/lokal_web/components/topbar.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								lib/lokal_web/components/topbar.ex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,106 @@
 | 
				
			|||||||
 | 
					defmodule LokalWeb.Components.Topbar do
 | 
				
			||||||
 | 
					  @moduledoc """
 | 
				
			||||||
 | 
					  Component that renders a topbar with user functions/links
 | 
				
			||||||
 | 
					  """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  use LokalWeb, :component
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  alias Lokal.Accounts
 | 
				
			||||||
 | 
					  alias LokalWeb.{Endpoint, PageLive}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def topbar(assigns) do
 | 
				
			||||||
 | 
					    assigns =
 | 
				
			||||||
 | 
					      %{results: [], title_content: nil, flash: nil, current_user: nil} |> Map.merge(assigns)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ~H"""
 | 
				
			||||||
 | 
					    <nav role="navigation" class="mb-8 px-8 py-4 w-full bg-primary-400">
 | 
				
			||||||
 | 
					      <div class="flex flex-col sm:flex-row justify-between items-center">
 | 
				
			||||||
 | 
					        <div class="mb-4 sm:mb-0 sm:mr-8 flex flex-row justify-start items-center space-x-2">
 | 
				
			||||||
 | 
					          <%= live_redirect("Lokal",
 | 
				
			||||||
 | 
					            to: Routes.live_path(Endpoint, PageLive),
 | 
				
			||||||
 | 
					            class: "mx-2 my-1 leading-5 text-xl text-white hover:underline"
 | 
				
			||||||
 | 
					          ) %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <%= if @title_content do %>
 | 
				
			||||||
 | 
					            <span class="mx-2 my-1">
 | 
				
			||||||
 | 
					              |
 | 
				
			||||||
 | 
					            </span>
 | 
				
			||||||
 | 
					            <%= @title_content %>
 | 
				
			||||||
 | 
					          <% end %>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <hr class="mb-2 sm:hidden hr-light" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <ul
 | 
				
			||||||
 | 
					          class="flex flex-row flex-wrap justify-center items-center
 | 
				
			||||||
 | 
					          text-lg text-white text-ellipsis"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          <%= if @current_user do %>
 | 
				
			||||||
 | 
					            <form phx-change="suggest" phx-submit="search">
 | 
				
			||||||
 | 
					              <input
 | 
				
			||||||
 | 
					                type="text"
 | 
				
			||||||
 | 
					                name="q"
 | 
				
			||||||
 | 
					                class="input input-primary"
 | 
				
			||||||
 | 
					                placeholder="Search"
 | 
				
			||||||
 | 
					                list="results"
 | 
				
			||||||
 | 
					                autocomplete="off"
 | 
				
			||||||
 | 
					              />
 | 
				
			||||||
 | 
					              <datalist id="results">
 | 
				
			||||||
 | 
					                <%= for {app, _vsn} <- @results do %>
 | 
				
			||||||
 | 
					                  <option value={app}>
 | 
				
			||||||
 | 
					                    "> <%= app %>
 | 
				
			||||||
 | 
					                  </option>
 | 
				
			||||||
 | 
					                <% end %>
 | 
				
			||||||
 | 
					              </datalist>
 | 
				
			||||||
 | 
					            </form>
 | 
				
			||||||
 | 
					            <%= if @current_user.role == :admin do %>
 | 
				
			||||||
 | 
					              <li class="mx-2 my-1">
 | 
				
			||||||
 | 
					                <%= live_redirect(gettext("Invites"),
 | 
				
			||||||
 | 
					                  to: Routes.invite_index_path(Endpoint, :index),
 | 
				
			||||||
 | 
					                  class: "text-primary-600 text-white hover:underline"
 | 
				
			||||||
 | 
					                ) %>
 | 
				
			||||||
 | 
					              </li>
 | 
				
			||||||
 | 
					            <% end %>
 | 
				
			||||||
 | 
					            <li class="mx-2 my-1">
 | 
				
			||||||
 | 
					              <%= live_redirect(@current_user.email,
 | 
				
			||||||
 | 
					                to: Routes.user_settings_path(Endpoint, :edit),
 | 
				
			||||||
 | 
					                class: "text-primary-600 text-white hover:underline truncate"
 | 
				
			||||||
 | 
					              ) %>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li class="mx-2 my-1">
 | 
				
			||||||
 | 
					              <%= link to: Routes.user_session_path(Endpoint, :delete),
 | 
				
			||||||
 | 
					                   method: :delete,
 | 
				
			||||||
 | 
					                   data: [confirm: dgettext("prompts", "Are you sure you want to log out?")] do %>
 | 
				
			||||||
 | 
					                <i class="fas fa-sign-out-alt"></i>
 | 
				
			||||||
 | 
					              <% end %>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <%= if @current_user.role == :admin and function_exported?(Routes, :live_dashboard_path, 2) do %>
 | 
				
			||||||
 | 
					              <li class="mx-2 my-1">
 | 
				
			||||||
 | 
					                <%= live_redirect to: Routes.live_dashboard_path(Endpoint, :home),
 | 
				
			||||||
 | 
					                  class: "text-primary-600 text-white hover:underline" do %>
 | 
				
			||||||
 | 
					                  <i class="fas fa-tachometer-alt"></i>
 | 
				
			||||||
 | 
					                <% end %>
 | 
				
			||||||
 | 
					              </li>
 | 
				
			||||||
 | 
					            <% end %>
 | 
				
			||||||
 | 
					          <% else %>
 | 
				
			||||||
 | 
					            <%= if Accounts.allow_registration?() do %>
 | 
				
			||||||
 | 
					              <li class="mx-2 my-1">
 | 
				
			||||||
 | 
					                <%= live_redirect(dgettext("actions", "Register"),
 | 
				
			||||||
 | 
					                  to: Routes.user_registration_path(Endpoint, :new),
 | 
				
			||||||
 | 
					                  class: "text-primary-600 text-white hover:underline truncate"
 | 
				
			||||||
 | 
					                ) %>
 | 
				
			||||||
 | 
					              </li>
 | 
				
			||||||
 | 
					            <% end %>
 | 
				
			||||||
 | 
					            <li class="mx-2 my-1">
 | 
				
			||||||
 | 
					              <%= live_redirect(dgettext("actions", "Log in"),
 | 
				
			||||||
 | 
					                to: Routes.user_session_path(Endpoint, :new),
 | 
				
			||||||
 | 
					                class: "text-primary-600 text-white hover:underline truncate"
 | 
				
			||||||
 | 
					              ) %>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					          <% end %>
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </nav>
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
@@ -4,28 +4,9 @@ defmodule LokalWeb.LiveHelpers do
 | 
				
			|||||||
  """
 | 
					  """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  import Phoenix.LiveView.Helpers
 | 
					  import Phoenix.LiveView.Helpers
 | 
				
			||||||
  import Phoenix.LiveView, only: [assign_new: 3]
 | 
					  import Phoenix.LiveView
 | 
				
			||||||
  alias Lokal.Accounts
 | 
					  alias Lokal.Accounts
 | 
				
			||||||
 | 
					  alias Phoenix.LiveView.JS
 | 
				
			||||||
  @doc """
 | 
					 | 
				
			||||||
  Renders a component inside the `LokalWeb.ModalComponent` component.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  The rendered modal receives a `:return_to` option to properly update
 | 
					 | 
				
			||||||
  the URL when the modal is closed.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ## Examples
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      <%= live_modal LokalWeb.TagLive.FormComponent,
 | 
					 | 
				
			||||||
        id: @tag.id || :new,
 | 
					 | 
				
			||||||
        action: @live_action,
 | 
					 | 
				
			||||||
        tag: @tag,
 | 
					 | 
				
			||||||
        return_to: Routes.tag_index_path(@socket, :index) %>
 | 
					 | 
				
			||||||
  """
 | 
					 | 
				
			||||||
  def live_modal(component, opts) do
 | 
					 | 
				
			||||||
    path = Keyword.fetch!(opts, :return_to)
 | 
					 | 
				
			||||||
    modal_opts = [id: :modal, return_to: path, component: component, opts: opts]
 | 
					 | 
				
			||||||
    live_component(LokalWeb.ModalComponent, modal_opts)
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def assign_defaults(socket, %{"user_token" => user_token} = _session) do
 | 
					  def assign_defaults(socket, %{"user_token" => user_token} = _session) do
 | 
				
			||||||
    socket
 | 
					    socket
 | 
				
			||||||
@@ -37,4 +18,78 @@ defmodule LokalWeb.LiveHelpers do
 | 
				
			|||||||
  def assign_defaults(socket, _session) do
 | 
					  def assign_defaults(socket, _session) do
 | 
				
			||||||
    socket
 | 
					    socket
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @doc """
 | 
				
			||||||
 | 
					  Renders a live component inside a modal.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The rendered modal receives a `:return_to` option to properly update
 | 
				
			||||||
 | 
					  the URL when the modal is closed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ## Examples
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <.modal return_to={Routes.<%= schema.singular %>_index_path(Endpoint, :index)}>
 | 
				
			||||||
 | 
					        <.live_component
 | 
				
			||||||
 | 
					          module={<%= inspect context.web_module %>.<%= inspect Module.concat(schema.web_namespace, schema.alias) %>Live.FormComponent}
 | 
				
			||||||
 | 
					          id={@<%= schema.singular %>.id || :new}
 | 
				
			||||||
 | 
					          title={@page_title}
 | 
				
			||||||
 | 
					          action={@live_action}
 | 
				
			||||||
 | 
					          return_to={Routes.<%= schema.singular %>_index_path(Endpoint, :index)}
 | 
				
			||||||
 | 
					          <%= schema.singular %>: @<%= schema.singular %>
 | 
				
			||||||
 | 
					        />
 | 
				
			||||||
 | 
					      </.modal>
 | 
				
			||||||
 | 
					  """
 | 
				
			||||||
 | 
					  def modal(assigns) do
 | 
				
			||||||
 | 
					    ~H"""
 | 
				
			||||||
 | 
					    <%= live_patch to: @return_to,
 | 
				
			||||||
 | 
					      id: "modal-bg",
 | 
				
			||||||
 | 
					      class:
 | 
				
			||||||
 | 
					        "fade-in fixed z-10 left-0 top-0
 | 
				
			||||||
 | 
					         w-full h-full overflow-hidden
 | 
				
			||||||
 | 
					         p-8 flex flex-col justify-center items-center cursor-auto",
 | 
				
			||||||
 | 
					      style: "background-color: rgba(0,0,0,0.4);",
 | 
				
			||||||
 | 
					      phx_remove: hide_modal()
 | 
				
			||||||
 | 
					    do %>
 | 
				
			||||||
 | 
					      <span class="hidden"></span>
 | 
				
			||||||
 | 
					    <% end %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <div
 | 
				
			||||||
 | 
					      id="modal"
 | 
				
			||||||
 | 
					      class="fixed z-10 left-0 top-0 pointer-events-none
 | 
				
			||||||
 | 
					        w-full h-full overflow-hidden
 | 
				
			||||||
 | 
					        p-4 sm:p-8 flex flex-col justify-center items-center"
 | 
				
			||||||
 | 
					    >
 | 
				
			||||||
 | 
					      <div
 | 
				
			||||||
 | 
					        id="modal-content"
 | 
				
			||||||
 | 
					        class="fade-in-scale w-full max-w-3xl relative
 | 
				
			||||||
 | 
					        pointer-events-auto overflow-hidden
 | 
				
			||||||
 | 
					        px-8 py-4 sm:py-8 flex flex-col justify-center items-center
 | 
				
			||||||
 | 
					        flex flex-col justify-start items-center
 | 
				
			||||||
 | 
					        bg-white border-2 rounded-lg"
 | 
				
			||||||
 | 
					      >
 | 
				
			||||||
 | 
					        <%= live_patch to: @return_to,
 | 
				
			||||||
 | 
					                   id: "close",
 | 
				
			||||||
 | 
					                   class:
 | 
				
			||||||
 | 
					                     "absolute top-8 right-10
 | 
				
			||||||
 | 
					                      text-gray-500 hover:text-gray-800
 | 
				
			||||||
 | 
					                      transition-all duration-500 ease-in-out",
 | 
				
			||||||
 | 
					                   phx_remove: hide_modal() do %>
 | 
				
			||||||
 | 
					          <i class="fa-fw fa-lg fas fa-times"></i>
 | 
				
			||||||
 | 
					        <% end %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <div
 | 
				
			||||||
 | 
					          class="overflow-x-hidden overflow-y-auto w-full p-8 flex flex-col space-y-4 justify-start items-center"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          <%= render_slot(@inner_block) %>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def hide_modal(js \\ %JS{}) do
 | 
				
			||||||
 | 
					    js
 | 
				
			||||||
 | 
					    |> JS.hide(to: "#modal", transition: "fade-out")
 | 
				
			||||||
 | 
					    |> JS.hide(to: "#modal-bg", transition: "fade-out")
 | 
				
			||||||
 | 
					    |> JS.hide(to: "#modal-content", transition: "fade-out-scale")
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,30 +0,0 @@
 | 
				
			|||||||
defmodule LokalWeb.ModalComponent do
 | 
					 | 
				
			||||||
  @moduledoc """
 | 
					 | 
				
			||||||
  Component that provides a floating modal
 | 
					 | 
				
			||||||
  """
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  use LokalWeb, :live_component
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  @impl true
 | 
					 | 
				
			||||||
  def render(assigns) do
 | 
					 | 
				
			||||||
    ~L"""
 | 
					 | 
				
			||||||
    <div id="<%= @id %>" class="phx-modal"
 | 
					 | 
				
			||||||
      phx-capture-click="close"
 | 
					 | 
				
			||||||
      phx-window-keydown="close"
 | 
					 | 
				
			||||||
      phx-key="escape"
 | 
					 | 
				
			||||||
      phx-target="#<%= @id %>"
 | 
					 | 
				
			||||||
      phx-page-loading>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      <div class="phx-modal-content">
 | 
					 | 
				
			||||||
        <%= live_patch raw("×"), to: @return_to, class: "phx-modal-close" %>
 | 
					 | 
				
			||||||
        <%= live_component @component, @opts %>
 | 
					 | 
				
			||||||
      </div>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    """
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  @impl true
 | 
					 | 
				
			||||||
  def handle_event("close", _, socket) do
 | 
					 | 
				
			||||||
    {:noreply, push_patch(socket, to: socket.assigns.return_to)}
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user