1.7 KiB
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 |
|
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)