diff --git a/assets/css/live_view.css b/assets/css/live_view.css index c22537aba..77bd176f2 100644 --- a/assets/css/live_view.css +++ b/assets/css/live_view.css @@ -15,10 +15,10 @@ iframe[hidden] { transition: opacity 1s ease-out; } -.phx-disconnected { +.phx-loading { cursor: wait; } -.phx-disconnected * { +.phx-loading * { pointer-events: none; } diff --git a/lib/livebook_web/helpers.ex b/lib/livebook_web/helpers.ex index 1fa312f94..1eea03dd5 100644 --- a/lib/livebook_web/helpers.ex +++ b/lib/livebook_web/helpers.ex @@ -199,7 +199,7 @@ defmodule LivebookWeb.Helpers do ~H""" """ end @@ -263,7 +263,7 @@ defmodule LivebookWeb.Helpers do ~H"""
- <%= render_block(@inner_block) %> + <%= render_slot(@inner_block) %>
<%= if @inner_block do %>
- <%= render_block(@inner_block) %> + <%= render_slot(@inner_block) %>
<% end %> diff --git a/lib/livebook_web/live/home_live.ex b/lib/livebook_web/live/home_live.ex index c3488e47c..0ceb49f3e 100644 --- a/lib/livebook_web/live/home_live.ex +++ b/lib/livebook_web/live/home_live.ex @@ -1,26 +1,22 @@ defmodule LivebookWeb.HomeLive do use LivebookWeb, :live_view - import LivebookWeb.UserHelpers import LivebookWeb.SessionHelpers alias LivebookWeb.{SidebarHelpers, ExploreHelpers} alias Livebook.{Sessions, Session, LiveMarkdown, Notebook, FileSystem} @impl true - def mount(_params, %{"current_user_id" => current_user_id} = session, socket) do + def mount(_params, _session, socket) do if connected?(socket) do Phoenix.PubSub.subscribe(Livebook.PubSub, "tracker_sessions") - Phoenix.PubSub.subscribe(Livebook.PubSub, "users:#{current_user_id}") end - current_user = build_current_user(session, socket) sessions = sort_sessions(Sessions.list_sessions()) notebook_infos = Notebook.Explore.notebook_infos() |> Enum.take(3) {:ok, assign(socket, - current_user: current_user, file: Livebook.Config.default_dir(), file_info: %{exists: true, access: :read_write}, sessions: sessions, @@ -59,11 +55,11 @@ defmodule LivebookWeb.HomeLive do
- <%= live_component LivebookWeb.FileSelectComponent, - id: "home-file-select", - file: @file, - extnames: [LiveMarkdown.extension()], - running_files: files(@sessions) do %> + <.live_component module={LivebookWeb.FileSelectComponent} + id="home-file-select" + file={@file} + extnames={[LiveMarkdown.extension()]} + running_files={files(@sessions)}>
- <% end %> +
@@ -351,13 +347,6 @@ defmodule LivebookWeb.HomeLive do {:noreply, socket} end - def handle_info( - {:user_change, %{id: id} = user}, - %{assigns: %{current_user: %{id: id}}} = socket - ) do - {:noreply, assign(socket, :current_user, user)} - end - def handle_info(_message, socket), do: {:noreply, socket} defp sort_sessions(sessions) do diff --git a/lib/livebook_web/live/home_live/import_component.ex b/lib/livebook_web/live/home_live/import_component.ex index 9239a2a62..b601d52bc 100644 --- a/lib/livebook_web/live/home_live/import_component.ex +++ b/lib/livebook_web/live/home_live/import_component.ex @@ -34,7 +34,9 @@ defmodule LivebookWeb.HomeLive.ImportComponent do
- <%= live_component component_for_tab(@tab), [{:id, "import-#{@tab}"} | @import_opts] %> + <.live_component module={component_for_tab(@tab)} + id={"import-#{@tab}"} + {@import_opts} />
""" diff --git a/lib/livebook_web/live/modal_component.ex b/lib/livebook_web/live/modal_component.ex index a7193daf2..a179d775e 100644 --- a/lib/livebook_web/live/modal_component.ex +++ b/lib/livebook_web/live/modal_component.ex @@ -11,7 +11,6 @@ defmodule LivebookWeb.ModalComponent do
- <%= live_component LivebookWeb.SessionLive.IndicatorsComponent, - session_id: @session.id, - file: @data_view.file, - dirty: @data_view.dirty, - autosave_interval_s: @data_view.autosave_interval_s, - runtime: @data_view.runtime, - global_status: @data_view.global_status %> +
@@ -838,13 +835,6 @@ defmodule LivebookWeb.SessionLive do {:noreply, push_event(socket, "intellisense_response", payload)} end - def handle_info( - {:user_change, %{id: id} = user}, - %{assigns: %{current_user: %{id: id}}} = socket - ) do - {:noreply, assign(socket, :current_user, user)} - end - def handle_info({:location_report, client_pid, report}, socket) do report = Map.put(report, :client_pid, inspect(client_pid)) {:noreply, push_event(socket, "location_report", report)} diff --git a/lib/livebook_web/live/session_live/cell_component.ex b/lib/livebook_web/live/session_live/cell_component.ex index 5ac23076d..809da1e62 100644 --- a/lib/livebook_web/live/session_live/cell_component.ex +++ b/lib/livebook_web/live/session_live/cell_component.ex @@ -246,7 +246,7 @@ defmodule LivebookWeb.SessionLive.CellComponent do
- <%= render_block(@inner_block) %> + <%= render_slot(@inner_block) %>
""" @@ -416,7 +416,7 @@ defmodule LivebookWeb.SessionLive.CellComponent do
- <%= render_block(@inner_block) %> + <%= render_slot(@inner_block) %> <%= if @change_indicator do %> * <% end %> diff --git a/lib/livebook_web/live/session_live/export_component.ex b/lib/livebook_web/live/session_live/export_component.ex index e649be89c..5e0e580b0 100644 --- a/lib/livebook_web/live/session_live/export_component.ex +++ b/lib/livebook_web/live/session_live/export_component.ex @@ -46,10 +46,10 @@ defmodule LivebookWeb.SessionLive.ExportComponent do <% end %>
- <%= live_component component_for_tab(@tab), - id: "export-notebook-#{@tab}", - session: @session, - notebook: @notebook %> + <.live_component module={component_for_tab(@tab)} + id={"export-notebook-#{@tab}"} + session={@session} + notebook={@notebook} />
diff --git a/lib/livebook_web/live/session_live/mix_standalone_live.ex b/lib/livebook_web/live/session_live/mix_standalone_live.ex index 7aecc2ccf..a5ad24e05 100644 --- a/lib/livebook_web/live/session_live/mix_standalone_live.ex +++ b/lib/livebook_web/live/session_live/mix_standalone_live.ex @@ -41,13 +41,13 @@ defmodule LivebookWeb.SessionLive.MixStandaloneLive do

<%= if @status == :initial do %>
- <%= live_component LivebookWeb.FileSelectComponent, - id: "mix-project-dir", - file: @file, - extnames: [], - running_files: [], - submit_event: if(disabled?(@file.path), do: nil, else: :init), - file_system_select_disabled: true %> + <.live_component module={LivebookWeb.FileSelectComponent} + id="mix-project-dir" + file={@file} + extnames={[]} + running_files={[]} + submit_event={if(disabled?(@file.path), do: nil, else: :init)} + file_system_select_disabled={true} />