mirror of
https://github.com/woutdp/live_svelte
synced 2026-05-24 09:28:21 +00:00
using put_new instead of assign to prevent constant re-render
This commit is contained in:
parent
cb57b77303
commit
97edfc8be5
1 changed files with 10 additions and 9 deletions
|
|
@ -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"""
|
||||
<LiveSvelte.svelte
|
||||
name={Map.get(var!(assigns), :__component_name)}
|
||||
class={Map.get(var!(assigns), :class)}
|
||||
ssr={LiveSvelte.get_ssr(var!(assigns))}
|
||||
props={Map.get(var!(assigns), :props, %{})}
|
||||
name={@__component_name}
|
||||
class={@class}
|
||||
ssr={@ssr}
|
||||
props={@props}
|
||||
/>
|
||||
"""
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in a new issue