@@ -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