Use default dir when saving with read-only file storage

This commit is contained in:
Alexandre de Souza 2025-09-22 12:43:07 -03:00
parent b88f443eaf
commit c0184bd5c2
No known key found for this signature in database
GPG key ID: E39228FFBA346545

View file

@ -49,10 +49,13 @@ defmodule LivebookWeb.SessionLive.PersistenceComponent do
|> assign_new(:new_attrs, fn -> attrs end)
|> assign_new(:draft_file, fn ->
file ||
case assigns.session.origin do
# If it's a forked notebook, default to the same folder
{:file, file} -> FileSystem.File.containing_dir(file)
_ -> Livebook.Settings.default_dir(assigns.hub)
with {:file, file} <- assigns.session.origin,
{:ok, file_system} <- FileSystem.File.fetch_file_system(file),
true <- FileSystem.Utils.writable?(file_system) do
# If it's a fork and a writable file system, default to the same folder
FileSystem.File.containing_dir(file)
else
_otherwise -> Livebook.Settings.default_dir(assigns.hub)
end
end)
|> assign_new(:saved_file, fn -> file end)