|
73 | 73 | (- (* depth collapse-button-width)
|
74 | 74 | (if children? collapse-button-width 0))))
|
75 | 75 |
|
76 |
| -(defn key-down-handler |
77 |
| - [e k] |
78 |
| - (case (.-key e) |
79 |
| - "ArrowUp" |
80 |
| - (do (.stopPropagation e) |
81 |
| - (rf/dispatch [::e/focus-up k])) |
82 |
| - |
83 |
| - "ArrowDown" |
84 |
| - (do (.stopPropagation e) |
85 |
| - (rf/dispatch [::e/focus-down k])) |
86 |
| - |
87 |
| - "ArrowLeft" |
88 |
| - (do (.stopPropagation e) |
89 |
| - (rf/dispatch [::document.e/collapse-el k])) |
90 |
| - |
91 |
| - "ArrowRight" |
92 |
| - (do (.stopPropagation e) |
93 |
| - (rf/dispatch [::document.e/expand-el k])) |
94 |
| - |
95 |
| - "Enter" |
96 |
| - (do (.stopPropagation e) |
97 |
| - (rf/dispatch [::element.e/select k (.-ctrlKey e)])) |
98 |
| - |
99 |
| - nil)) |
100 |
| - |
101 | 76 | (defn list-item-button
|
102 | 77 | [{:keys [key selected? children] :as el} depth hovered? collapsed?]
|
103 | 78 | (let [multiple-selected? @(rf/subscribe [::element.s/multiple-selected?])]
|
|
112 | 87 | :ref (fn [this]
|
113 | 88 | (when (and this selected? hovered? (not multiple-selected?))
|
114 | 89 | (dom/scroll-into-view! this)))
|
115 |
| - :on-key-down #(key-down-handler % key) |
| 90 | + :on-key-down #(do (.stopPropagation %) |
| 91 | + (rf/dispatch [::e/key-down (.-key %) key (.-ctrlKey %)])) |
116 | 92 | :draggable true
|
117 | 93 | :on-drag-start #(-> (.-dataTransfer %)
|
118 | 94 | (.setData "key" (name key)))
|
119 | 95 | :on-drag-enter #(rf/dispatch [::document.e/set-hovered-keys #{key}])
|
120 | 96 | :on-drag-over #(.preventDefault %)
|
121 | 97 | :on-drop #(drop-handler % key)
|
122 |
| - :on-pointer-down (fn [e] |
123 |
| - (when (= (.-button e) 2) |
124 |
| - (rf/dispatch [::element.e/select key (.-ctrlKey e)]))) |
| 98 | + :on-pointer-down #(when (= (.-button %) 2) |
| 99 | + (rf/dispatch [::element.e/select key (.-ctrlKey %)])) |
125 | 100 | :on-pointer-up (fn [e]
|
126 | 101 | (.stopPropagation e)
|
127 | 102 | (rf/dispatch [::element.e/select key (.-ctrlKey e)]))
|
|
0 commit comments