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, action: nil, destructive: false) ⇒ Object
-
#share_item(title = "Share", url: nil, icon: "square.and.arrow.up", icons: { android: "share" }, 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.
418 419 420 421 |
# File 'lib/ruby_native/helper.rb', line 418 def initialize(context) @context = context @items = [] end |
Instance Method Details
#item(title, href: nil, click: nil, icon: nil, icons: nil, selected: false, action: nil, destructive: false) ⇒ Object
423 424 425 426 427 428 429 430 431 432 433 |
# File 'lib/ruby_native/helper.rb', line 423 def item(title, href: nil, click: nil, icon: nil, icons: nil, selected: false, action: nil, destructive: 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 data[:native_destructive] = "" if destructive data[:native_action] = RubyNative::Helper.validate_action(action) if action add(@context.tag.div(data: data)) end |
#share_item(title = "Share", url: nil, icon: "square.and.arrow.up", icons: { android: "share" }, 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.
439 440 441 442 443 444 445 446 |
# File 'lib/ruby_native/helper.rb', line 439 def share_item(title = "Share", url: nil, icon: "square.and.arrow.up", icons: { android: "share" }, 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 add(@context.tag.div(data: data)) end |
#to_html ⇒ Object
448 449 450 |
# File 'lib/ruby_native/helper.rb', line 448 def to_html @context.safe_join(@items) end |