diff --git a/app/helpers/cable_ready/view_helper.rb b/app/helpers/cable_ready/view_helper.rb index c9b9fca0..8f027605 100644 --- a/app/helpers/cable_ready/view_helper.rb +++ b/app/helpers/cable_ready/view_helper.rb @@ -27,12 +27,13 @@ def cable_ready_stream_from(*keys, html_options: {}) tag.cable_ready_stream_from(**build_options(*keys, html_options)) end - def cable_ready_updates_for(*keys, url: nil, debounce: nil, only: nil, ignore_inner_updates: false, html_options: {}, &block) + def cable_ready_updates_for(*keys, url: nil, debounce: nil, only: nil, ignore_inner_updates: false, observe_appearance: false, html_options: {}, &block) options = build_options(*keys, html_options) options[:url] = url if url options[:debounce] = debounce if debounce options[:only] = only if only options[:"ignore-inner-updates"] = "" if ignore_inner_updates + options[:"observe-appearance"] = "" if observe_appearance tag.cable_ready_updates_for(**options) { capture(&block) } end diff --git a/javascript/elements/updates_for_element.js b/javascript/elements/updates_for_element.js index 9a17a1ee..08630fac 100644 --- a/javascript/elements/updates_for_element.js +++ b/javascript/elements/updates_for_element.js @@ -8,6 +8,7 @@ import ActiveElement from '../active_element' import CableConsumer from '../cable_consumer' import Log from '../updatable/log' import { BoundedQueue } from '../utils' +import { AppearanceObserver } from '../observers/appearance_observer' const template = `