Module: RubyNative::Helper
- Defined in:
- lib/ruby_native/helper.rb
Defined Under Namespace
Classes: MenuBuilder, NavbarBuilder, NavbarMenuBuilder
Instance Method Summary
collapse
-
#native_back_button_tag(text = nil, **options) ⇒ Object
-
#native_badge_tag(count = nil, home: nil, tab: nil) ⇒ Object
-
#native_button_tag(title, url, ios_image: nil, side: :right, **options) ⇒ Object
-
#native_form_data(**data) ⇒ Object
-
#native_form_tag ⇒ Object
-
#native_haptic_data(feedback = :success, **data) ⇒ Object
-
#native_menu_tag(title:, side: :right, &block) ⇒ Object
-
#native_navbar_tag(title, &block) ⇒ Object
-
#native_push_tag ⇒ Object
-
#native_search_tag ⇒ Object
-
#native_submit_data ⇒ Object
-
#native_tabs_tag(enabled: true) ⇒ Object
Instance Method Details
29
30
31
32
33
34
35
36
|
# File 'lib/ruby_native/helper.rb', line 29
def native_back_button_tag(text = nil, **options)
options[:class] = [options[:class], "native-back-button"].compact.join(" ")
default_content = tag.svg(
tag.path(d: "M15.75 19.5L8.25 12l7.5-7.5", stroke_linecap: "round", stroke_linejoin: "round"),
width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", stroke_width: 2.5
)
tag.button(text || default_content, onclick: "RubyNative.postMessage({action: 'back'})", **options)
end
|
#native_badge_tag(count = nil, home: nil, tab: nil) ⇒ Object
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/ruby_native/helper.rb', line 62
def native_badge_tag(count = nil, home: nil, tab: nil)
home = count if count && home.nil?
tab = count if count && tab.nil?
signal_data = { native_badge: "" }
signal_data[:native_badge_home] = home unless home.nil?
signal_data[:native_badge_tab] = tab unless tab.nil?
bridge_data = { controller: "bridge--badge" }
bridge_data[:bridge__badge_home_value] = home unless home.nil?
bridge_data[:bridge__badge_tab_value] = tab unless tab.nil?
safe_join([
tag.div(data: signal_data, hidden: true),
tag.div(data: bridge_data)
])
end
|
42
43
44
45
46
47
48
49
|
# File 'lib/ruby_native/helper.rb', line 42
def native_button_tag(title, url, ios_image: nil, side: :right, **options)
data = options.delete(:data) || {}
data[:controller] = "bridge--button"
data[:bridge_side] = side.to_s
data[:bridge_ios_image] = ios_image if ios_image
link_to title, url, **options, data: data
end
|
14
15
16
|
# File 'lib/ruby_native/helper.rb', line 14
def native_form_data(**data)
merge_controller(data, "bridge--form")
end
|
10
11
12
|
# File 'lib/ruby_native/helper.rb', line 10
def native_form_tag
tag.div(data: { native_form: true }, hidden: true)
end
|
#native_haptic_data(feedback = :success, **data) ⇒ Object
87
88
89
90
91
92
93
94
|
# File 'lib/ruby_native/helper.rb', line 87
def native_haptic_data(feedback = :success, **data)
feedback = feedback.to_s
feedback = "success" if feedback.empty?
data[:native_haptic] = feedback
data[:bridge__haptic_feedback_value] = feedback
merge_controller(data, "bridge--haptic")
end
|
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/ruby_native/helper.rb', line 51
def (title:, side: :right, &block)
builder = MenuBuilder.new(self)
capture(builder, &block)
tag.div(style: "display:none", data: {
controller: "bridge--menu",
bridge__menu_title_value: title,
bridge__menu_side_value: side.to_s
}) { builder.to_html }
end
|
#native_navbar_tag(title, &block) ⇒ Object
80
81
82
83
84
85
|
# File 'lib/ruby_native/helper.rb', line 80
def native_navbar_tag(title, &block)
builder = NavbarBuilder.new(self)
capture(builder, &block) if block
tag.div(data: { native_navbar: title }, hidden: true) { builder.to_html }
end
|
#native_push_tag ⇒ Object
22
23
24
25
26
27
|
# File 'lib/ruby_native/helper.rb', line 22
def native_push_tag
safe_join([
tag.div(data: { native_push: true }, hidden: true),
tag.div(data: { controller: "bridge--push" })
])
end
|
#native_search_tag ⇒ Object
38
39
40
|
# File 'lib/ruby_native/helper.rb', line 38
def native_search_tag
tag.div(data: { controller: "bridge--search" })
end
|
#native_submit_data ⇒ Object
18
19
20
|
# File 'lib/ruby_native/helper.rb', line 18
def native_submit_data
{ bridge__form_target: "submit" }
end
|
#native_tabs_tag(enabled: true) ⇒ Object
3
4
5
6
7
8
|
# File 'lib/ruby_native/helper.rb', line 3
def native_tabs_tag(enabled: true)
safe_join([
(tag.div(data: { native_tabs: true }, hidden: true) if enabled),
tag.div(data: { controller: "bridge--tabs", bridge__tabs_enabled_value: enabled })
].compact)
end
|