From d494e58c6a89ca64fd97c848fa5209103621f508 Mon Sep 17 00:00:00 2001 From: Cristine Guadelupe Date: Tue, 27 Sep 2022 23:25:07 -0300 Subject: [PATCH] Secrets modal title from options (#1443) * Secrets modal title from options * Applying suggestions --- assets/js/hooks/js_view.js | 1 + lib/livebook_web/live/session_live.ex | 17 ++++++++++++++--- .../live/session_live/secrets_component.ex | 11 +++++++++-- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/assets/js/hooks/js_view.js b/assets/js/hooks/js_view.js index 4fec1ad8c..2c59f34b1 100644 --- a/assets/js/hooks/js_view.js +++ b/assets/js/hooks/js_view.js @@ -335,6 +335,7 @@ const JSView = { this.pushEvent("select_secret", { js_view_ref: this.props.ref, preselect_name: message.preselectName, + options: message.options, }); } } diff --git a/lib/livebook_web/live/session_live.ex b/lib/livebook_web/live/session_live.ex index 64905cdd4..b6ee0e3b4 100644 --- a/lib/livebook_web/live/session_live.ex +++ b/lib/livebook_web/live/session_live.ex @@ -408,6 +408,7 @@ defmodule LivebookWeb.SessionLive do prefill_secret_name={@prefill_secret_name} select_secret_ref={@select_secret_ref} preselect_name={@preselect_name} + select_secret_options={@select_secret_options} return_to={@self_path} /> @@ -759,7 +760,9 @@ defmodule LivebookWeb.SessionLive do assign(socket, prefill_secret_name: params["secret_name"], preselect_name: params["preselect_name"], - select_secret_ref: if(params["preselect_name"], do: socket.assigns.select_secret_ref) + select_secret_ref: if(params["preselect_name"], do: socket.assigns.select_secret_ref), + select_secret_options: + if(params["preselect_name"], do: socket.assigns.select_secret_options) )} end @@ -1122,10 +1125,18 @@ defmodule LivebookWeb.SessionLive do def handle_event( "select_secret", - %{"js_view_ref" => select_secret_ref, "preselect_name" => preselect_name}, + %{ + "js_view_ref" => select_secret_ref, + "preselect_name" => preselect_name, + "options" => select_secret_options + }, socket ) do - socket = assign(socket, select_secret_ref: select_secret_ref) + socket = + assign(socket, + select_secret_ref: select_secret_ref, + select_secret_options: select_secret_options + ) {:noreply, push_patch(socket, diff --git a/lib/livebook_web/live/session_live/secrets_component.ex b/lib/livebook_web/live/session_live/secrets_component.ex index 60e087c17..68208a09b 100644 --- a/lib/livebook_web/live/session_live/secrets_component.ex +++ b/lib/livebook_web/live/session_live/secrets_component.ex @@ -9,7 +9,10 @@ defmodule LivebookWeb.SessionLive.SecretsComponent do if socket.assigns[:data] do socket else - assign(socket, data: %{"name" => prefill_secret_name(socket), "value" => ""}) + assign(socket, + data: %{"name" => prefill_secret_name(socket), "value" => ""}, + title: title(socket) + ) end {:ok, socket} @@ -20,7 +23,7 @@ defmodule LivebookWeb.SessionLive.SecretsComponent do ~H"""

- Add secret + <%= @title %>

<%= if @select_secret_ref do %> @@ -176,4 +179,8 @@ defmodule LivebookWeb.SessionLive.SecretsComponent do defp unavailable_secret?(preselect_name, secrets) do preselect_name not in Enum.map(secrets, & &1.name) end + + defp title(%{assigns: %{select_secret_ref: nil}}), do: "Add secret" + defp title(%{assigns: %{select_secret_options: %{"title" => title}}}), do: title + defp title(_), do: "Select secret" end