diff --git a/lib/live_component.ex b/lib/live_component.ex
index 4842137..568e90d 100644
--- a/lib/live_component.ex
+++ b/lib/live_component.ex
@@ -26,16 +26,19 @@ defmodule LiveSvelte do
<%!-- TODO: This can return things like
which should be in the head --%>
<%!-- --%>
-
+ <%= if not connected?(@socket) do %>
<%= raw(@ssr_render["html"]) %>
-
+ <% else %>
+
+
+ <% end %>
"""
end
@@ -46,14 +49,7 @@ defmodule LiveSvelte do
ssr_code =
if not connected?(socket) do
props = Map.get(assigns, :props, %{})
-
- slot =
- ~H"""
- <%= render_slot(@inner_block) %>
- """
- |> Phoenix.HTML.Safe.to_iodata()
- |> List.to_string()
-
+ slot = get_slot(assigns)
ssr_render(assigns.name, props, slot)
end
@@ -65,6 +61,16 @@ defmodule LiveSvelte do
{:ok, socket}
end
+ defp get_slot(assigns) do
+ ~H"""
+ <%= if assigns[:inner_block] do %>
+ <%= render_slot(@inner_block) %>
+ <% end %>
+ """
+ |> Phoenix.HTML.Safe.to_iodata()
+ |> List.to_string()
+ end
+
defp ssr_render(name, props, slots \\ nil)
defp ssr_render(name, nil, slots), do: ssr_render(name, %{}, slots)