|
9 | 9 | [renderer.element.events :as-alias element.e]
|
10 | 10 | [renderer.element.subs :as-alias element.s]
|
11 | 11 | [renderer.frame.events :as-alias frame.e]
|
| 12 | + [renderer.tree.events :as-alias e] |
12 | 13 | [renderer.utils.dom :as dom]
|
13 | 14 | [renderer.utils.keyboard :as keyb]))
|
14 | 15 |
|
|
73 | 74 | (if children? collapse-button-width 0))))
|
74 | 75 |
|
75 | 76 | (defn key-down-handler
|
76 |
| - [e el-k] |
77 |
| - (let [ctrl? (.-ctrlKey e)] |
78 |
| - (case (.-key e) |
79 |
| - "ArrowUp" |
80 |
| - (do (.stopPropagation e) |
81 |
| - (rf/dispatch [::element.e/select-up ctrl?])) |
| 77 | + [e k] |
| 78 | + (case (.-key e) |
| 79 | + "ArrowUp" |
| 80 | + (do (.stopPropagation e) |
| 81 | + (rf/dispatch [::e/select-up k])) |
| 82 | + |
| 83 | + "ArrowDown" |
| 84 | + (do (.stopPropagation e) |
| 85 | + (rf/dispatch [::e/select-down k])) |
82 | 86 |
|
83 |
| - "ArrowDown" |
84 |
| - (do (.stopPropagation e) |
85 |
| - (rf/dispatch [::element.e/select-down ctrl?])) |
| 87 | + "ArrowLeft" |
| 88 | + (do (.stopPropagation e) |
| 89 | + (rf/dispatch [::document.e/collapse-el k])) |
86 | 90 |
|
87 |
| - "ArrowLeft" |
88 |
| - (do (.stopPropagation e) |
89 |
| - (rf/dispatch [::document.e/collapse-el el-k])) |
| 91 | + "ArrowRight" |
| 92 | + (do (.stopPropagation e) |
| 93 | + (rf/dispatch [::document.e/expand-el k])) |
90 | 94 |
|
91 |
| - "ArrowRight" |
92 |
| - (do (.stopPropagation e) |
93 |
| - (rf/dispatch [::document.e/expand-el el-k])) |
| 95 | + "Enter" |
| 96 | + (do (.stopPropagation e) |
| 97 | + (rf/dispatch [::element.e/select k (.-ctrlKey e)])) |
94 | 98 |
|
95 |
| - nil))) |
| 99 | + nil)) |
96 | 100 |
|
97 | 101 | (defn list-item-button
|
98 | 102 | [{:keys [key selected? children] :as el} depth hovered? collapsed?]
|
|
101 | 105 | {:class [(when selected? "selected")
|
102 | 106 | (when hovered? "hovered")]
|
103 | 107 | :tab-index 0
|
| 108 | + :data-id key |
104 | 109 | :role "menuitem"
|
105 | 110 | :on-double-click #(rf/dispatch [::frame.e/pan-to-element key])
|
106 | 111 | :on-pointer-enter #(rf/dispatch [::document.e/set-hovered-keys #{key}])
|
|
0 commit comments