Sha256: 845af63d7cb8c6c09ce38c3c07fd2b29ecb9831cf497c2a4cab5bcc989969093

Contents?: true

Size: 798 Bytes

Versions: 12

Compression:

Stored size: 798 Bytes

Contents

import morphdom from "morphdom"
import { createConsumer } from "@rails/actioncable"
import { initializeActions } from "../actions/initialize-actions.ts"

const consumer = createConsumer()

export const claptonChannel = consumer.subscriptions.create("Clapton::ClaptonChannel", {
  connected() {},

  disconnected() {},

  received(response) {
    const { data, errors } = response;
    const component = document.querySelector(`[data-id="${data.component.id}"]`)
    const instance = new window[data.component.name](data.state, data.component.id, errors);
    morphdom(component, instance.render, {
      onBeforeElUpdated: (_fromEl, toEl) => {
        toEl.setAttribute("data-set-event-handler", "true");
        return true;
      }
    });
    initializeInputs();
    initializeActions();
  }
})

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
clapton-0.0.12 lib/clapton/javascripts/src/channel/clapton-channel.js
clapton-0.0.11 lib/clapton/javascripts/src/channel/clapton-channel.js
clapton-0.0.10 lib/clapton/javascripts/src/channel/clapton-channel.js
clapton-0.0.9 lib/clapton/javascripts/src/channel/clapton-channel.js
clapton-0.0.8 lib/clapton/javascripts/src/channel/clapton-channel.js
clapton-0.0.7 lib/clapton/javascripts/src/channel/clapton-channel.js
clapton-0.0.6 lib/clapton/javascripts/src/channel/clapton-channel.js
clapton-0.0.5 lib/clapton/javascripts/src/channel/clapton-channel.js
clapton-0.0.4 lib/clapton/javascripts/src/channel/clapton-channel.js
clapton-0.0.3 lib/clapton/javascripts/src/channel/clapton-channel.js
clapton-0.0.2 lib/clapton/javascripts/src/channel/clapton-channel.js
clapton-0.0.1 lib/clapton/javascripts/src/channel/clapton-channel.js