diff --git a/lib/livebook_web/live/hub_live.ex b/lib/livebook_web/live/hub_live.ex index 57cb93ef4..7bd0cdb2f 100644 --- a/lib/livebook_web/live/hub_live.ex +++ b/lib/livebook_web/live/hub_live.ex @@ -54,27 +54,33 @@ defmodule LivebookWeb.HubLive do
- <.card_item - id="fly" - selected={@selected_hub_service} - title="Fly" - headline="Connect to your application" - > + <.card_item id="fly" selected={@selected_hub_service} title="Fly"> <:logo> <.fly_logo /> + <:headline> + Connect to your application + <.card_item + id="enterprise" disabled selected={@selected_hub_service} - id="enterprise" - title="Enterprise" - headline="Coming soon..." + title="Livebook Enterprise" > <:logo> Fly logo + <:headline> + + Learn more + +
@@ -99,10 +105,28 @@ defmodule LivebookWeb.HubLive do end defp card_item(assigns) do - assigns = put_class(assigns) + base_class = "flex card-item flex-col" + + hook = + case assigns do + %{disabled: true} -> nil + _ -> "SelectHubService" + end + + class = + case assigns do + %{id: current, selected: selected} when current == selected -> base_class <> " selected" + %{disabled: true} -> base_class <> " disabled" + _ -> base_class + end + + assigns = + assigns + |> assign_new(:class, fn -> class end) + |> assign_new(:phx_hook, fn -> hook end) ~H""" -
+
@@ -112,7 +136,7 @@ defmodule LivebookWeb.HubLive do

- <%= @headline %> + <%= render_slot(@headline) %>

@@ -175,6 +199,7 @@ defmodule LivebookWeb.HubLive do defp fly_form(assigns) do ~H""" <.form + id="fly-form" class="flex flex-col space-y-4" let={f} for={:fly} @@ -252,18 +277,6 @@ defmodule LivebookWeb.HubLive do """ end - defp put_class(%{id: id, selected: service} = assigns) when service === id do - assign_new(assigns, :class, fn -> "flex card-item flex-col selected" end) - end - - defp put_class(%{disabled: true} = assigns) do - assign_new(assigns, :class, fn -> "flex card-item flex-col disabled" end) - end - - defp put_class(assigns) do - assign_new(assigns, :class, fn -> "flex card-item flex-col" end) - end - @impl true def handle_event("select_hub_service", %{"value" => service}, socket) do {:noreply, assign(socket, selected_hub_service: service)}