Skip to content

Commit c772e2d

Browse files
authored
fix!: correctly use rest in components (#266)
1 parent 2b7feee commit c772e2d

File tree

2 files changed

+6
-24
lines changed

2 files changed

+6
-24
lines changed

lib/temple/renderer.ex

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,16 @@ defmodule Temple.Renderer do
113113

114114
component_arguments =
115115
{:%{}, [],
116-
(arguments ++ [rest: quote(do: Map.new(unquote(rest)))])
116+
arguments
117117
|> Map.new()
118118
|> Map.merge(slot_quotes)
119119
|> Enum.to_list()}
120120

121+
component_arguments =
122+
quote do
123+
Map.merge(Map.new(unquote(rest)), unquote(component_arguments))
124+
end
125+
121126
expr =
122127
quote do
123128
component(

test/temple/renderer_test.exs

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -636,29 +636,6 @@ defmodule Temple.RendererTest do
636636
assert_html expected, result
637637
end
638638

639-
test "rest! attribute can is passed as @rest to component assigns" do
640-
assigns = %{
641-
rest: [
642-
class: "font-bold"
643-
]
644-
}
645-
646-
result =
647-
Renderer.compile do
648-
c &rest_component/1, id: "foo", rest!: @rest
649-
end
650-
651-
# heex
652-
expected = """
653-
<div id="foo" class="font-bold">
654-
%{class: &quot;font-bold&quot;}
655-
</div>
656-
657-
"""
658-
659-
assert_html expected, result
660-
end
661-
662639
test "rest! attribute can mix in dynamic attributes to slots" do
663640
assigns = %{
664641
rest: [

0 commit comments

Comments
 (0)