Commit 40213f6
fix(compositor-ui): address 7 UX issues in compositor node (#72)
* fix(compositor-ui): address 7 UX issues in compositor node
Issue #1: Click outside text layer commits inline edit
- Add document.activeElement.blur() in handlePaneClick before deselecting
- Add useEffect on TextOverlayLayer watching isSelected to commit on deselect
Issue #2: Preview panel resizable from all four edges
- Add ResizeEdgeRight and ResizeEdgeBottom styled components
- Extend handleResizeStart edge type to support right/bottom
- Update resizeRef type to match
Issue #3: Monitor view preview extracts MoQ peer settings from pipeline
- Find transport::moq::peer node in pipeline and extract gateway_path/output_broadcast
- Set correct serverUrl and outputBroadcast before connecting
- Import updateUrlPath utility
Issue #4: Deep-compare layer state to prevent position jumps on selection change
- Skip setLayers/setTextOverlays/setImageOverlays when merged state is structurally equal
- Prevents stale server-echoed values from causing visual glitches
Issue #5: Rotate mouse delta for rotated layer resize handles
- Transform (dx, dy) by -rotationDegrees in computeUpdatedLayer
- Makes resize handles behave naturally regardless of layer rotation
Issue #6: Visual separator between layer list and per-layer controls
- Add borderTop and paddingTop to LayerInfoRow for both video and text controls
Issue #7: Text layers support opacity and rotation sliders
- Add rotationDegrees field to TextOverlayState, parse/serialize rotation_degrees
- Add rotation transform to TextOverlayLayer canvas rendering
- Replace numeric opacity input with slider matching video layer controls
- Add rotation slider for text layers
Co-Authored-By: Claudio Costa <cstcld91@gmail.com>
* fix(compositor-ui): fix preview drag, text state flicker, overlay throttling, multiline text
- OutputPreviewPanel: make panel body draggable (not just header) with
cursor: grab styling so preview behaves like other canvas nodes
- useCompositorLayers: add throttledOverlayCommit for text/image overlay
updates (sliders, etc.) to prevent flooding the server on every tick;
increase overlay commit guard from 1.5s to 3s to prevent stale params
from overwriting local state; arm guard immediately in updateTextOverlay
and updateImageOverlay
- CompositorCanvas: change InlineTextInput from <input> to <textarea> for
multiline text editing; Enter inserts newline, Ctrl/Cmd+Enter commits;
add white-space: pre-wrap and word-break to text content rendering;
add ResizeHandles to TextOverlayLayer when selected
- CompositorNode: change OverlayTextInput to <textarea> with vertical
resize support for multiline text in node controls panel
Co-Authored-By: Claudio Costa <cstcld91@gmail.com>
---------
Co-authored-by: StreamKit Devin <devin@streamkit.dev>
Co-authored-by: Claudio Costa <cstcld91@gmail.com>1 parent 2e355f7 commit 40213f6
File tree
5 files changed
+397
-138
lines changed- ui/src
- components
- hooks
- nodes
- views
5 files changed
+397
-138
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
91 | | - | |
| 90 | + | |
| 91 | + | |
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
| |||
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
105 | 112 | | |
106 | 113 | | |
107 | 114 | | |
| |||
271 | 278 | | |
272 | 279 | | |
273 | 280 | | |
| 281 | + | |
274 | 282 | | |
275 | 283 | | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
282 | 307 | | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
290 | 315 | | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
305 | 330 | | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
323 | 338 | | |
324 | | - | |
325 | | - | |
326 | | - | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
327 | 356 | | |
328 | | - | |
329 | | - | |
330 | | - | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
331 | 360 | | |
332 | | - | |
333 | | - | |
| 361 | + | |
| 362 | + | |
334 | 363 | | |
335 | | - | |
336 | | - | |
337 | | - | |
338 | | - | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | | - | |
360 | | - | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
365 | | - | |
366 | | - | |
367 | | - | |
368 | | - | |
369 | | - | |
370 | | - | |
371 | | - | |
372 | | - | |
373 | | - | |
374 | | - | |
375 | | - | |
376 | | - | |
377 | | - | |
378 | | - | |
379 | | - | |
380 | | - | |
381 | | - | |
382 | | - | |
383 | | - | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
384 | 421 | | |
385 | 422 | | |
386 | 423 | | |
| |||
486 | 523 | | |
487 | 524 | | |
488 | 525 | | |
| 526 | + | |
| 527 | + | |
489 | 528 | | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
490 | 532 | | |
491 | 533 | | |
492 | 534 | | |
| |||
546 | 588 | | |
547 | 589 | | |
548 | 590 | | |
| 591 | + | |
549 | 592 | | |
550 | 593 | | |
551 | 594 | | |
| |||
0 commit comments