diff --git a/example_project/lib/example_web/live/live_json.ex b/example_project/lib/example_web/live/live_json.ex
index 88b3792..a5fb6bd 100644
--- a/example_project/lib/example_web/live/live_json.ex
+++ b/example_project/lib/example_web/live/live_json.ex
@@ -3,7 +3,16 @@ defmodule ExampleWeb.LiveJson do
def render(assigns) do
~H"""
- <.svelte name="LiveJson" live_json_props={%{big_data_set: @ljbig_data_set}} />
+
+
+ SSR:
+ <.svelte name="LiveJson" live_json_props={%{big_data_set: @ljbig_data_set}} />
+
+
+ No SSR:
+ <.svelte name="LiveJson" live_json_props={%{big_data_set: @ljbig_data_set}} ssr={false} />
+
+
"""
end
diff --git a/lib/component.ex b/lib/component.ex
index cef9066..c655c9e 100644
--- a/lib/component.ex
+++ b/lib/component.ex
@@ -78,6 +78,7 @@ defmodule LiveSvelte do
assigns =
assigns
+ |> assign(:init, init)
|> assign(:slots, slots)
|> assign(:ssr_render, ssr_code)
@@ -88,7 +89,7 @@ defmodule LiveSvelte do
id={id(@name)}
data-name={@name}
data-props={json(@props)}
- data-live-json={render_live_json(@live_json_props, @ssr_render)}
+ data-live-json={if @init, do: json(@live_json_props), else: @live_json_props |> Map.keys() |> json()}
data-slots={Slots.base_encode_64(@slots) |> json}
phx-update="ignore"
phx-hook="SvelteHook"
@@ -119,9 +120,6 @@ defmodule LiveSvelte do
end
end
- def render_live_json(data, nil), do: json(Map.keys(data))
- def render_live_json(data, _ssr_render), do: json(data)
-
defp id(name), do: "#{name}-#{System.unique_integer([:positive])}"
@doc false
diff --git a/lib/live_json.ex b/lib/live_json.ex
index c76d9e0..de51788 100644
--- a/lib/live_json.ex
+++ b/lib/live_json.ex
@@ -5,7 +5,7 @@ defmodule LiveSvelte.LiveJson do
:live_json_props,
:map,
default: %{},
- doc: "LiveJson props to pass to the Svelte component"
+ doc: "LiveJSON props to pass to the svelte component"
)
slot(:inner_block)
@@ -13,12 +13,11 @@ defmodule LiveSvelte.LiveJson do
def live_json(assigns) do
~H"""
<%= if @live_json_props != %{} do %>
-
- <%= render_slot(@inner_block) %>
-
- <% else %>
- <%= render_slot(@inner_block) %>
+
<% end %>
+ <%= render_slot(@inner_block) %>
"""
end
+
+ defp id(name), do: "#{name}-#{System.unique_integer([:positive])}"
end