|
10 | 10 | [renderer.element.hierarchy :as element.hierarchy]
|
11 | 11 | [renderer.element.subs :as-alias element.subs]
|
12 | 12 | [renderer.element.views :as element.views]
|
13 |
| - [renderer.event.impl.pointer :as event.impl.pointer] |
14 | 13 | [renderer.event.impl.wheel :as event.impl.wheel]
|
15 | 14 | [renderer.frame.events :as-alias frame.events]
|
16 | 15 | [renderer.views :as views]))
|
17 | 16 |
|
18 | 17 | (defn inner-component
|
19 |
| - "We need access to the iframe's window to add the pointer move listener. |
20 |
| - This is required in order to track pointer movement outside of our canvas. |
| 18 | + "We need access to the iframe's window to add the wheel listener. |
| 19 | + This is required in order to prevent the default zoom behavior. |
21 | 20 | https://github.com/ryanseddon/react-frame-component#accessing-the-iframes-window-and-document
|
22 | 21 | https://github.com/reagent-project/reagent/blob/master/doc/ReactFeatures.md#function-components"
|
23 | 22 | []
|
24 | 23 | (let [frame-window (.-window (useFrame))]
|
25 | 24 | (reagent/create-class
|
26 | 25 | {:component-did-mount
|
27 |
| - (fn [] |
28 |
| - (.addEventListener frame-window "pointermove" event.impl.pointer/handler!) |
29 |
| - (.addEventListener frame-window "pointerup" event.impl.pointer/handler!) |
30 |
| - (.addEventListener frame-window "wheel" event.impl.wheel/handler! #js {:passive false})) |
| 26 | + #(.addEventListener frame-window "wheel" event.impl.wheel/handler! #js {:passive false}) |
31 | 27 |
|
32 | 28 | :component-will-unmount
|
33 |
| - (fn [] |
34 |
| - (.removeEventListener frame-window "pointerup" event.impl.pointer/handler!) |
35 |
| - (.removeEventListener frame-window "pointermove" event.impl.pointer/handler!) |
36 |
| - (.removeEventListener frame-window "wheel" event.impl.wheel/handler!)) |
| 29 | + #(.removeEventListener frame-window "wheel" event.impl.wheel/handler!) |
37 | 30 |
|
38 | 31 | :reagent-render #()})))
|
39 | 32 |
|
|
78 | 71 | ;; This is a different browsing context inside an iframe.
|
79 | 72 | ;; We need to simulate the events to the parent window.
|
80 | 73 | on-keyboard-event (fn [e]
|
81 |
| - ;; TODO: use re-pressed :prevent-default-keys |
| 74 | + ;; TODO: Use re-pressed :prevent-default-keys? |
82 | 75 | (.preventDefault e)
|
83 | 76 | (.dispatchEvent js/window.parent.document
|
84 | 77 | (js/KeyboardEvent. (.-type e)
|
|
0 commit comments