Packages
livebook
0.19.6
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.3
0.17.2
0.17.1
0.17.0
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.14.0-rc.1
0.14.0-rc.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Automate code & data workflows with interactive notebooks
Current section
Files
Jump to
Current section
Files
lib/livebook_web/live/session_live/code_cell_settings_component.ex
defmodule LivebookWeb.SessionLive.CodeCellSettingsComponent do
use LivebookWeb, :live_component
alias Livebook.Session
@impl true
def update(assigns, socket) do
cell = assigns.cell
socket =
socket
|> assign(assigns)
|> assign_new(:reevaluate_automatically, fn -> cell.reevaluate_automatically end)
|> assign_new(:continue_on_error, fn -> cell.continue_on_error end)
{:ok, socket}
end
@impl true
def render(assigns) do
~H"""
<div class="flex flex-col space-y-8">
<h3 class="text-2xl font-semibold text-gray-800">
Cell settings
</h3>
<form phx-submit="save" phx-target={@myself}>
<div class="w-full flex-col space-y-6 mt-4">
<.switch_field
name="reevaluate_automatically"
label="Reevaluate automatically"
value={@reevaluate_automatically}
/>
</div>
<div class="w-full flex-col space-y-6 mt-4">
<.switch_field
name="continue_on_error"
label="Continue on error"
value={@continue_on_error}
/>
</div>
<div class="mt-8 flex justify-begin space-x-2">
<.button type="submit">
Save
</.button>
<.button color="gray" outlined patch={@return_to}>
Cancel
</.button>
</div>
</form>
</div>
"""
end
@impl true
def handle_event(
"save",
%{
"reevaluate_automatically" => reevaluate_automatically,
"continue_on_error" => continue_on_error
},
socket
) do
reevaluate_automatically = reevaluate_automatically == "true"
continue_on_error = continue_on_error == "true"
Session.set_cell_attributes(socket.assigns.session.pid, socket.assigns.cell.id, %{
reevaluate_automatically: reevaluate_automatically,
continue_on_error: continue_on_error
})
{:noreply, push_patch(socket, to: socket.assigns.return_to)}
end
end