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.



425
426
427
428
# File 'lib/ruby_native/helper.rb', line 425

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



430
431
432
433
434
435
436
437
438
439
440
# File 'lib/ruby_native/helper.rb', line 430

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.



446
447
448
449
450
451
452
453
# File 'lib/ruby_native/helper.rb', line 446

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



455
456
457
# File 'lib/ruby_native/helper.rb', line 455

def to_html
  @context.safe_join(@items)
end