Skip to content

Commit

Permalink
change field description attribute to slot
Browse files Browse the repository at this point in the history
  • Loading branch information
woylie committed Dec 30, 2023
1 parent a6db44a commit f4ea385
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 14 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
- Add required `label` attribute to `Doggo.navbar/1`.
- Add `class` attribute to `:item` slot of `Doggo.navbar_items/1`.
- Add `required_title` attribute to `Doggo.label/1`.
- Change `description` attribute of `Doggo.field_description/1` to inner block.

### Fixed

Expand Down
38 changes: 24 additions & 14 deletions lib/doggo.ex
Original file line number Diff line number Diff line change
Expand Up @@ -2176,7 +2176,9 @@ defmodule Doggo do
<%= @label %>
</.label>
<.field_errors for={@id} errors={@errors} />
<.field_description for={@id} description={@description} />
<.field_description :if={@description != []} for={@id}>
<%= render_slot(@description) %>
</.field_description>
</div>
"""
end
Expand All @@ -2203,7 +2205,9 @@ defmodule Doggo do
</div>
</fieldset>
<.field_errors for={@id} errors={@errors} />
<.field_description for={@id} description={@description} />
<.field_description :if={@description != []} for={@id}>
<%= render_slot(@description) %>
</.field_description>
</div>
"""
end
Expand All @@ -2229,7 +2233,9 @@ defmodule Doggo do
</div>
</fieldset>
<.field_errors for={@id} errors={@errors} />
<.field_description for={@id} description={@description} />
<.field_description :if={@description != []} for={@id}>
<%= render_slot(@description) %>
</.field_description>
</div>
"""
end
Expand Down Expand Up @@ -2270,7 +2276,9 @@ defmodule Doggo do
</span>
</.label>
<.field_errors for={@id} errors={@errors} />
<.field_description for={@id} description={@description} />
<.field_description :if={@description != []} for={@id}>
<%= render_slot(@description) %>
</.field_description>
</div>
"""
end
Expand Down Expand Up @@ -2299,7 +2307,9 @@ defmodule Doggo do
</select>
</div>
<.field_errors for={@id} errors={@errors} />
<.field_description for={@id} description={@description} />
<.field_description :if={@description != []} for={@id}>
<%= render_slot(@description) %>
</.field_description>
</div>
"""
end
Expand All @@ -2322,7 +2332,9 @@ defmodule Doggo do
{@rest}
><%= Phoenix.HTML.Form.normalize_value("textarea", @value) %></textarea>
<.field_errors for={@id} errors={@errors} />
<.field_description for={@id} description={@description} />
<.field_description :if={@description != []} for={@id}>
<%= render_slot(@description) %>
</.field_description>
</div>
"""
end
Expand Down Expand Up @@ -2375,7 +2387,9 @@ defmodule Doggo do
<.option :for={option <- @options} option={option} />
</datalist>
<.field_errors for={@id} errors={@errors} />
<.field_description for={@id} description={@description} />
<.field_description :if={@description != []} for={@id}>
<%= render_slot(@description) %>
</.field_description>
</div>
"""
end
Expand Down Expand Up @@ -2568,16 +2582,12 @@ defmodule Doggo do
@doc type: :form

attr :for, :string, required: true, doc: "The ID of the input."
attr :description, :any
slot :inner_block, required: true

def field_description(assigns) do
~H"""
<div
:if={@description != []}
id={field_description_id(@for)}
class="field-description"
>
<%= render_slot(@description) %>
<div id={field_description_id(@for)} class="field-description">
<%= render_slot(@inner_block) %>
</div>
"""
end
Expand Down
15 changes: 15 additions & 0 deletions test/doggo_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -1607,6 +1607,21 @@ defmodule DoggoTest do
end
end

describe "field_description/1" do
test "default" do
assigns = %{}

html =
parse_heex(~H"""
<Doggo.field_description for="some-input">text</Doggo.field_description>
""")

div = find_one(html, "div:root")
assert attribute(div, "class") == "field-description"
assert attribute(div, "id") == "some-input_description"
end
end

describe "field_errors/1" do
test "without errors" do
assigns = %{}
Expand Down

0 comments on commit f4ea385

Please sign in to comment.