Sha256: 66100bdc9374125cc0a999512e103074e44914349a77c1bc1677a24a3223a931
Contents?: true
Size: 865 Bytes
Versions: 2
Compression:
Stored size: 865 Bytes
Contents
import { connectStreamSource, disconnectStreamSource } from "@hotwired/turbo" import { subscribeTo } from "./cable" class TurboCableStreamSourceElement extends HTMLElement { async connectedCallback() { connectStreamSource(this) this.subscription = subscribeTo(this.channel, { received: this.dispatchMessageEvent.bind(this) }) } disconnectedCallback() { disconnectStreamSource(this) if (this.subscription) this.subscription.unsubscribe() } dispatchMessageEvent(data) { const event = new MessageEvent("message", { data }) return this.dispatchEvent(event) } get channel() { const channel = this.getAttribute("channel") const signed_stream_name = this.getAttribute("signed-stream-name") return { channel, signed_stream_name } } } customElements.define("turbo-cable-stream-source", TurboCableStreamSourceElement)
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
turbo-rails-0.5.1 | app/javascript/turbo/cable_stream_source_element.js |
turbo-rails-0.5.0 | app/javascript/turbo/cable_stream_source_element.js |