turbo_reflex 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,111 +0,0 @@
1
- import './frame_sources'
2
- import Security from './security'
3
- import LifecycleEvents from './lifecycle_events'
4
- import {
5
- findClosestReflex,
6
- findClosestFrame,
7
- findFrameId,
8
- findFrame,
9
- findFrameSrc,
10
- buildAttributePayload
11
- } from './elements'
12
- import {
13
- registerEventListener,
14
- registerEvent,
15
- registeredEvents,
16
- isRegisteredEvent,
17
- logRegisteredEvents
18
- } from './event_registry'
19
-
20
- // fires before making a turbo HTTP request
21
- addEventListener('turbo:before-fetch-request', event => {
22
- const frame = event.target
23
- const { turboReflexActive } = frame.dataset
24
- if (!turboReflexActive) return
25
- const { fetchOptions } = event.detail
26
- fetchOptions.headers['Turbo-Reflex'] = Security.token
27
- })
28
-
29
- function buildURL (urlString) {
30
- const a = document.createElement('a')
31
- a.href = urlString
32
- return new URL(a)
33
- }
34
-
35
- function invokeFormReflex (form, payload = {}) {
36
- payload.token = Security.token
37
- const input = document.createElement('input')
38
- input.type = 'hidden'
39
- input.name = 'turbo_reflex'
40
- input.value = JSON.stringify(payload)
41
- form.appendChild(input)
42
- }
43
-
44
- function invokeReflex (event) {
45
- let element, frameId, frame, frameSrc
46
- try {
47
- element = findClosestReflex(event.target)
48
- if (!element) return
49
-
50
- if (!isRegisteredEvent(event.type, element.tagName)) return
51
-
52
- LifecycleEvents.dispatch(LifecycleEvents.beforeStart, element, { element })
53
-
54
- frameId = findFrameId(element)
55
- if (!frameId) return
56
-
57
- frame = findFrame(frameId)
58
- if (!frame) return
59
-
60
- frameSrc = findFrameSrc(frame)
61
- if (!frameSrc) return
62
-
63
- const payload = {
64
- frameId: frameId,
65
- element: buildAttributePayload(element)
66
- }
67
-
68
- LifecycleEvents.dispatch(LifecycleEvents.start, element, {
69
- element,
70
- frameId,
71
- frame,
72
- frameSrc,
73
- payload
74
- })
75
- frame.dataset.turboReflexActive = true
76
- frame.dataset.turboReflexElementId = element.id
77
-
78
- if (element.tagName.toLowerCase() === 'form')
79
- return invokeFormReflex(element, payload)
80
-
81
- event.preventDefault()
82
- const frameURL = buildURL(frameSrc)
83
- frameURL.searchParams.set('turbo_reflex', JSON.stringify(payload))
84
- frame.src = frameURL.toString()
85
- } catch (error) {
86
- console.error(
87
- `TurboReflex encountered an unexpected error!`,
88
- { element, frameId, frame, frameSrc, target: event.target },
89
- error
90
- )
91
- LifecycleEvents.dispatch(LifecycleEvents.error, element || document, {
92
- element,
93
- frameId,
94
- frame,
95
- frameSrc,
96
- error
97
- })
98
- }
99
- }
100
-
101
- // wire things up and setup default events
102
- registerEventListener(invokeReflex)
103
- registerEvent('change', ['input', 'select', 'textarea'])
104
- registerEvent('submit', ['form'])
105
- registerEvent('click', ['*'])
106
-
107
- export default {
108
- registerEvent,
109
- logRegisteredEvents,
110
- logLifecycleEventNames: LifecycleEvents.logEventNames
111
- }
data/config/routes.rb DELETED
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Rails.application.routes.draw do
4
- match "turbo_reflex", to: "turbo_reflex/turbo_reflexes#show", via: :all, as: :turbo_reflex
5
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module TurboReflex
4
- class ResponseNotRenderedError < StandardError
5
- end
6
- end