Class: RubyNative::Helper::NavbarMenuBuilder
- Inherits:
-
Object
- Object
- RubyNative::Helper::NavbarMenuBuilder
- Defined in:
- lib/ruby_native/helper.rb
Instance Method Summary collapse
-
#initialize(context) ⇒ NavbarMenuBuilder
constructor
A new instance of NavbarMenuBuilder.
- #item(title, href: nil, click: nil, icon: nil, icons: nil, selected: false) ⇒ Object
-
#share_item(title = "Share", url: nil, icon: "square.and.arrow.up", icons: nil, selected: false) ⇒ Object
Adds a share entry to a navbar button’s dropdown menu.
- #to_html ⇒ Object
Constructor Details
#initialize(context) ⇒ NavbarMenuBuilder
Returns a new instance of NavbarMenuBuilder.
159 160 161 162 |
# File 'lib/ruby_native/helper.rb', line 159 def initialize(context) @context = context @items = [] end |
Instance Method Details
#item(title, href: nil, click: nil, icon: nil, icons: nil, selected: false) ⇒ Object
164 165 166 167 168 169 170 171 172 |
# File 'lib/ruby_native/helper.rb', line 164 def item(title, href: nil, click: nil, icon: nil, icons: nil, selected: false) resolved = RubyNative::Helper.resolve_icon(icon: icon, icons: icons, platform: @context.try(:native_platform)) data = { native_menu_item: "", native_title: title } data[:native_href] = href if href data[:native_click] = click if click data[:native_icon] = resolved if resolved data[:native_selected] = "" if selected @items << @context.tag.div(data: data) end |
#share_item(title = "Share", url: nil, icon: "square.and.arrow.up", icons: nil, selected: false) ⇒ Object
Adds a share entry to a navbar button’s dropdown menu. Selecting it opens the platform share sheet for ‘url:` (defaults to the current page on the web side). Icons follow the same `icon:`/`icons:` rules as the other menu items.
178 179 180 181 182 183 184 185 |
# File 'lib/ruby_native/helper.rb', line 178 def share_item(title = "Share", url: nil, icon: "square.and.arrow.up", icons: nil, selected: false) resolved = RubyNative::Helper.resolve_icon(icon: icon, icons: icons, platform: @context.try(:native_platform)) data = { native_menu_item: "", native_title: title, native_share: "" } data[:native_share_url] = url if url data[:native_icon] = resolved if resolved data[:native_selected] = "" if selected @items << @context.tag.div(data: data) end |
#to_html ⇒ Object
187 188 189 |
# File 'lib/ruby_native/helper.rb', line 187 def to_html @context.safe_join(@items) end |