module Shimmer::RemoteNavigation

Public Instance Methods

close_modal_path(id: nil) click to toggle source
# File lib/shimmer/utils/remote_navigation.rb, line 25
def close_modal_path(id: nil)
  "javascript:ui.modal.close(#{{id: id}.to_json})"
end
default_render() click to toggle source
Calls superclass method
# File lib/shimmer/utils/remote_navigation.rb, line 12
def default_render
  return render_modal if shimmer_request?
  return super unless ui.updates?

  render turbo_stream: ui.queued_updates.join("\n")
end
enforce_modal() click to toggle source
# File lib/shimmer/utils/remote_navigation.rb, line 43
def enforce_modal
  raise "trying to render a modal from a regular request" unless shimmer_request?
end
modal_path(url, id: nil, size: nil, close: true) click to toggle source
popover_path(url, id: nil, selector: nil, placement: nil) click to toggle source
# File lib/shimmer/utils/remote_navigation.rb, line 30
def popover_path(url, id: nil, selector: nil, placement: nil)
  "javascript:ui.popover.open(#{{url: url, id: id, selector: selector, placement: placement}.compact.to_json})"
end
render_modal() click to toggle source
# File lib/shimmer/utils/remote_navigation.rb, line 38
def render_modal
  enforce_modal
  render layout: false
end
shimmer_request?() click to toggle source
# File lib/shimmer/utils/remote_navigation.rb, line 34
def shimmer_request?
  request.headers["X-Shimmer"].present?
end
ui() click to toggle source
# File lib/shimmer/utils/remote_navigation.rb, line 8
def ui
  @ui ||= RemoteNavigator.new(self)
end