defmodule LivebookWeb.Hub.SecretListComponent do use LivebookWeb, :live_component alias Livebook.Hubs alias Livebook.Secrets alias Livebook.Secrets.Secret @impl true def update(assigns, socket) do {:ok, assign(socket, assigns)} end @impl true def render(assigns) do ~H"""
<.no_entries :if={@secrets == []}> No secrets in this Hub yet.
<.labeled_text label="Name"> <%= secret.name %>
<.menu id={"hub-secret-#{secret.name}-menu"}> <:toggle> <.menu_item> <.link id={"hub-secret-#{secret.name}-edit"} patch={~p"/hub/#{secret.hub_id}/secrets/edit/#{secret.name}"} type="button" role="menuitem" > <.remix_icon icon="file-edit-line" /> Edit <.menu_item variant={:danger}>
<.link patch={~p"/hub/#{@hub.id}/secrets/new"} class="button-base button-blue" id="add-secret"> Add secret
""" end @impl true def handle_event("delete_hub_secret", attrs, socket) do on_confirm = fn socket -> {:ok, secret} = Secrets.update_secret(%Secret{}, attrs) hub = Livebook.Hubs.fetch_hub!(secret.hub_id) case Hubs.delete_secret(hub, secret) do :ok -> socket {:transport_error, reason} -> put_flash(socket, :error, reason) end end {:noreply, confirm(socket, on_confirm, title: "Delete hub secret - #{attrs["name"]}", description: "Are you sure you want to delete this hub secret?", confirm_text: "Delete", confirm_icon: "delete-bin-6-line" )} end end