Skip to content

Commit 9318205

Browse files
committed
fix: improve graph view interactions
1 parent 14b85b9 commit 9318205

14 files changed

Lines changed: 1423 additions & 3914 deletions

File tree

docs/agent-guide/graph-view/001-graph-view.md

Lines changed: 167 additions & 136 deletions
Large diffs are not rendered by default.

src/main/frontend/common/graph_view.cljs

Lines changed: 148 additions & 134 deletions
Large diffs are not rendered by default.

src/main/frontend/components/graph.cljs

Lines changed: 71 additions & 72 deletions
Large diffs are not rendered by default.

src/main/frontend/extensions/graph.cljs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
(:width opts)
2323
(:height opts)
2424
(:aria-label opts)
25-
(:grid-layout? opts)
26-
(:visible-recent-task-count opts)])
25+
(:grid-layout? opts)])
2726

2827
(defn- schedule-render-container!
2928
[container opts]
@@ -55,6 +54,7 @@
5554
on-node-activate-ref (hooks/use-ref nil)
5655
on-node-preview-ref (hooks/use-ref nil)
5756
on-selection-change-ref (hooks/use-ref nil)
57+
on-focus-change-ref (hooks/use-ref nil)
5858
on-rendered-ref (hooks/use-ref nil)
5959
incremental-update-ready? (fn [container]
6060
(and container
@@ -68,13 +68,17 @@
6868
change-selection! (fn [nodes]
6969
(when-let [handler (hooks/deref on-selection-change-ref)]
7070
(handler nodes)))
71+
change-focus! (fn [node]
72+
(when-let [handler (hooks/deref on-focus-change-ref)]
73+
(handler node)))
7174
rendered! (fn [render-info]
7275
(hooks/set-ref! render-pending-ref false)
7376
(when-let [handler (hooks/deref on-rendered-ref)]
7477
(handler render-info)))]
7578
(hooks/set-ref! on-node-activate-ref (:on-node-activate opts))
7679
(hooks/set-ref! on-node-preview-ref (:on-node-preview opts))
7780
(hooks/set-ref! on-selection-change-ref (:on-selection-change opts))
81+
(hooks/set-ref! on-focus-change-ref (:on-focus-change opts))
7882
(hooks/set-ref! on-rendered-ref (:on-rendered opts))
7983
(hooks/use-effect!
8084
(fn []
@@ -87,6 +91,7 @@
8791
:on-node-activate activate-node!
8892
:on-node-preview preview-node!
8993
:on-selection-change change-selection!
94+
:on-focus-change change-focus!
9095
:on-rendered rendered!)))))
9196
(render-container-deps opts))
9297
(hooks/use-effect!
@@ -123,6 +128,12 @@
123128
(:show-arrows? opts)
124129
(:show-edge-labels? opts)))))
125130
[(:show-arrows? opts) (:show-edge-labels? opts)])
131+
(hooks/use-effect!
132+
(fn []
133+
(when-let [container (hooks/deref container-ref)]
134+
(when (incremental-update-ready? container)
135+
(pixi/reset-interaction! container))))
136+
[(:reset-token opts)])
126137
[:div.graph-canvas
127138
{:ref container-ref
128139
:style (canvas-style opts)

src/main/frontend/extensions/graph.css

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,13 @@
6666
background: color-mix(in srgb, var(--ls-link-text-color) 16%, transparent);
6767
}
6868

69-
.graph-settings-toggle {
69+
.graph-settings-toggle,
70+
.graph-interaction-reset {
7071
width: 46px;
7172
height: 46px;
7273
min-width: 46px;
7374
min-height: 46px;
75+
max-height: 46px;
7476
border: 1px solid color-mix(in srgb, var(--ls-link-text-color) 18%, var(--ls-border-color));
7577
background: color-mix(in srgb, var(--ls-primary-background-color) 82%, transparent);
7678
box-shadow: 0 12px 34px rgba(15, 23, 42, 0.16);

0 commit comments

Comments
 (0)