mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-10-03 10:14:34 +08:00
Reset autosave interval when changing file system (#1689)
This commit is contained in:
parent
5f6e7176fc
commit
5d651cf5c7
1 changed files with 19 additions and 33 deletions
|
@ -112,10 +112,6 @@ defmodule LivebookWeb.SessionLive.PersistenceLive do
|
|||
end
|
||||
|
||||
@impl true
|
||||
def handle_event("clear_file", %{}, socket) do
|
||||
{:noreply, socket |> put_new_file(nil) |> assign(draft_file: nil)}
|
||||
end
|
||||
|
||||
def handle_event(
|
||||
"set_options",
|
||||
%{"persist_outputs" => persist_outputs, "autosave_interval_s" => autosave_interval_s},
|
||||
|
@ -143,7 +139,24 @@ defmodule LivebookWeb.SessionLive.PersistenceLive do
|
|||
|
||||
@impl true
|
||||
def handle_info({:set_file, file, _file_info}, socket) do
|
||||
{:noreply, assign(socket, draft_file: file)}
|
||||
current_file_system = socket.assigns.draft_file.file_system
|
||||
|
||||
autosave_interval_s =
|
||||
case file.file_system do
|
||||
^current_file_system ->
|
||||
socket.assigns.new_attrs.autosave_interval_s
|
||||
|
||||
%FileSystem.Local{} ->
|
||||
Livebook.Notebook.default_autosave_interval_s()
|
||||
|
||||
_other ->
|
||||
nil
|
||||
end
|
||||
|
||||
{:noreply,
|
||||
socket
|
||||
|> assign(draft_file: file)
|
||||
|> put_new_attr(:autosave_interval_s, autosave_interval_s)}
|
||||
end
|
||||
|
||||
def handle_info(:confirm_file, socket) do
|
||||
|
@ -166,9 +179,7 @@ defmodule LivebookWeb.SessionLive.PersistenceLive do
|
|||
Session.set_notebook_attributes(assigns.session.pid, diff)
|
||||
end
|
||||
|
||||
if draft_file do
|
||||
Session.save_sync(assigns.session.pid)
|
||||
end
|
||||
Session.save_sync(assigns.session.pid)
|
||||
|
||||
{:noreply, push_patch(socket, to: Routes.session_path(socket, :page, assigns.session.id))}
|
||||
end
|
||||
|
@ -180,31 +191,6 @@ defmodule LivebookWeb.SessionLive.PersistenceLive do
|
|||
end
|
||||
end
|
||||
|
||||
defp put_new_file(socket, file) do
|
||||
new_attrs = socket.assigns.new_attrs
|
||||
current_file_system = new_attrs.file && new_attrs.file.file_system
|
||||
new_file_system = file && file.file_system
|
||||
|
||||
autosave_interval_s =
|
||||
case new_file_system do
|
||||
^current_file_system ->
|
||||
new_attrs.autosave_interval_s
|
||||
|
||||
nil ->
|
||||
Livebook.Notebook.default_autosave_interval_s()
|
||||
|
||||
%FileSystem.Local{} ->
|
||||
Livebook.Notebook.default_autosave_interval_s()
|
||||
|
||||
_other ->
|
||||
nil
|
||||
end
|
||||
|
||||
socket
|
||||
|> put_new_attr(:file, file)
|
||||
|> put_new_attr(:autosave_interval_s, autosave_interval_s)
|
||||
end
|
||||
|
||||
defp put_new_attr(socket, key, value) do
|
||||
new_attrs = socket.assigns.new_attrs
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue