rspace-online/backlog/tasks/task-14 - Overhaul-canvas-s...

1.7 KiB

id title status assignee created_date labels dependencies priority
TASK-14 Overhaul canvas shape creation, connections, and sync Done
2026-02-15 15:28
canvas
bugfix
refactor
high

Description

Fixed multiple issues preventing the FolkJS canvas and shapes from working properly.

Acceptance Criteria

  • #1 Trip shapes (itinerary, destination, budget, packing-list, booking) have position:absolute CSS
  • #2 Arrow connections work with all 21 shape types, not just markdown and wrapper
  • #3 New shapes appear at viewport center instead of clustering top-left
  • #4 Shape creation uses shared createAndAddShape() utility (~270 lines removed)
  • #5 Google Item toolbar button exists
  • #6 Remote shape creation has error handling (try-catch-finally)
  • #7 WebSocket keep-alive ping actually sends a message
  • #8 Sync layer uses toJSON() to capture all shape-specific properties

Final Summary

Fixed 8 issues in canvas.html and community-sync.ts:\n\n1. Added 5 missing trip shapes to CSS position:absolute rule\n2. Expanded arrow connection mode from 2 to all 21 shape types\n3. New shapes now center in viewport (accounting for zoom/pan)\n4. Extracted createAndAddShape() utility, eliminating ~270 lines of duplication\n5. Added missing Google Item toolbar button\n6. Added try-catch-finally on remote shape creation\n7. Implemented actual WebSocket keep-alive ping (was no-op)\n8. Replaced manual property extraction in #shapeToData() with shape.toJSON() for all shape types\n\nNet result: -158 lines (179 added, 337 removed)