File tree 1 file changed +9
-15
lines changed
1 file changed +9
-15
lines changed Original file line number Diff line number Diff line change 2
2
3
3
module RubyUI
4
4
class Switch < Base
5
- def view_template
6
- attrs => { include_hidden :, **input_attrs }
5
+ def initialize ( include_hidden : true , checked_value : "1" , unchecked_value : "0" , **attrs )
6
+ @include_hidden = include_hidden
7
+ @checked_value = checked_value
8
+ @unchecked_value = unchecked_value
9
+ super ( **attrs )
10
+ end
7
11
12
+ def view_template
8
13
label (
9
14
role : "switch" ,
10
15
class : "peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-50 bg-input has-[:checked]:bg-primary"
11
16
) do
12
- input ( type : "hidden" , name : attrs [ :name ] , value : "0" ) if include_hidden
13
- input ( **input_attrs )
17
+ input ( type : "hidden" , name : attrs [ :name ] , value : @unchecked_value ) if @ include_hidden
18
+ input ( **attrs . merge ( type : "checkbox" , class : "hidden peer" , value : @checked_value ) )
14
19
15
20
span ( class : "pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform translate-x-0 peer-checked:translate-x-5 " )
16
21
end
17
22
end
18
-
19
- private
20
-
21
- def default_attrs
22
- {
23
- class : "hidden peer" ,
24
- type : "checkbox" ,
25
- include_hidden : true ,
26
- value : "1"
27
- }
28
- end
29
23
end
30
24
end
You can’t perform that action at this time.
0 commit comments