Skip to content

Commit f579e85

Browse files
Fix checked & unchecked values
1 parent e5e1c3d commit f579e85

File tree

1 file changed

+36
-4
lines changed
  • lib/bitstyles_phoenix/component

1 file changed

+36
-4
lines changed

lib/bitstyles_phoenix/component/form.ex

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,25 @@ defmodule BitstylesPhoenix.Component.Form do
353353
"""
354354
)
355355

356+
story(
357+
"Checkbox with label class",
358+
"""
359+
iex> assigns=%{form: form()}
360+
...> render ~H\"""
361+
...> <.ui_input form={@form} field={:accept} type={:checkbox} label_opts={[class: "extra"]} checked_value="123" unchecked_value="" />
362+
...> \"""
363+
""",
364+
"""
365+
\"""
366+
<label for="user_accept" class="extra">
367+
<input name="user[accept]" type="hidden" value=""/>
368+
<input id="user_accept" name="user[accept]" type="checkbox" value="123"/>
369+
Accept
370+
</label>
371+
\"""
372+
"""
373+
)
374+
356375
def ui_input(assigns) do
357376
extra = assigns_to_attributes(assigns, @wrapper_assigns_keys ++ [:type])
358377

@@ -961,20 +980,33 @@ defmodule BitstylesPhoenix.Component.Form do
961980

962981
def ui_raw_input(%{type: "checkbox"} = assigns) do
963982
assigns =
964-
assign_new(assigns, :checked, fn ->
983+
assigns
984+
|> assign_new(:checked, fn ->
965985
PhxForm.normalize_value("checkbox", assigns[:value])
966986
end)
987+
|> assign_new(:checked_value, fn -> "true" end)
988+
|> assign_new(:unchecked_value, fn -> "false" end)
989+
990+
extra =
991+
assigns_to_attributes(assigns, [
992+
:id,
993+
:name,
994+
:checked,
995+
:value,
996+
:type,
997+
:checked_value,
998+
:unchecked_value
999+
])
9671000

968-
extra = assigns_to_attributes(assigns, [:id, :name, :checked, :value, :type])
9691001
assigns = assign(assigns, extra: extra)
9701002

9711003
~H"""
972-
<input name={@name} type="hidden" value="false" disabled={@extra[:disabled]} />
1004+
<input name={@name} type="hidden" value={@unchecked_value} disabled={@extra[:disabled]} />
9731005
<input
9741006
id={@id}
9751007
name={@name}
9761008
type="checkbox"
977-
value="true"
1009+
value={@checked_value}
9781010
checked={@checked}
9791011
{@extra}
9801012
/>

0 commit comments

Comments
 (0)