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
# File lib/shimmer/utils/remote_navigation.rb, line 20 def modal_path(url, id: nil, size: nil, close: true) "javascript:ui.modal.open(#{{url: url, id: id, size: size, close: close}.to_json})" end
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