Skip to content

Commit 6dcd1b2

Browse files
Fix checked & unchecked values
1 parent e5e1c3d commit 6dcd1b2

File tree

1 file changed

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

1 file changed

+26
-4
lines changed

lib/bitstyles_phoenix/component/form.ex

Lines changed: 26 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,23 @@ 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)
967989

968-
extra = assigns_to_attributes(assigns, [:id, :name, :checked, :value, :type])
990+
extra = assigns_to_attributes(assigns, [:id, :name, :checked, :value, :type, :checked_value, :unchecked_value])
969991
assigns = assign(assigns, extra: extra)
970992

971993
~H"""
972-
<input name={@name} type="hidden" value="false" disabled={@extra[:disabled]} />
994+
<input name={@name} type="hidden" value={@unchecked_value} disabled={@extra[:disabled]} />
973995
<input
974996
id={@id}
975997
name={@name}
976998
type="checkbox"
977-
value="true"
999+
value={@checked_value}
9781000
checked={@checked}
9791001
{@extra}
9801002
/>

0 commit comments

Comments
 (0)