From 97edfc8be50c7f4dc64adb2e5ae9114a28f41745 Mon Sep 17 00:00:00 2001 From: Conor Sinclair Date: Sat, 3 Jun 2023 21:21:01 +0100 Subject: [PATCH] using put_new instead of assign to prevent constant re-render --- lib/components.ex | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/components.ex b/lib/components.ex index ffdb381..7df365c 100644 --- a/lib/components.ex +++ b/lib/components.ex @@ -33,22 +33,23 @@ defmodule LiveSvelte.Components do assigns |> Map.filter(fn {:svelte_opts, _v} -> false - {k, _v} -> k not in [:__changed__] + {k, _v} -> k not in [:__changed__, :__given__, :ssr] _ -> false end) var!(assigns) = - assign(assigns, - __component_name: unquote(name), - props: props || %{} - ) + assigns + |> Map.put(:__component_name, unquote(name)) + |> Map.put_new(:ssr, true) + |> Map.put_new(:class, nil) + |> assign(:props, props) ~H""" """ end