Class: RubyNative::Helper::NavbarMenuBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_native/helper.rb

Instance Method Summary collapse

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_htmlObject



448
449
450
# File 'lib/ruby_native/helper.rb', line 448

def to_html
  @context.safe_join(@items)
end