rspace-online/backlog/tasks/task-108 - rNetwork-CRM-—-i...

1.7 KiB

id title status assignee created_date updated_date labels dependencies references priority
TASK-108 rNetwork CRM — inline force-directed graph in Graph tab Done
2026-03-11 21:38 2026-03-11 21:38
rnetwork
frontend
graph
TASK-98
modules/rnetwork/components/folk-crm-view.ts
medium

Description

Replace the Graph tab's external link with an interactive SVG graph rendered directly inside folk-crm-view.ts using the CRM data already loaded (people, companies, opportunities). Companies appear as colored clusters with people orbiting around them. Cross-org opportunity links shown as dashed purple edges. Includes pan/zoom/drag interactions and auto fit-to-view.

Acceptance Criteria

  • #1 Graph tab renders inline SVG with company clusters and person nodes
  • #2 Force-directed layout with pan/zoom/drag interactions
  • #3 Cross-org edges from opportunities shown as dashed purple lines
  • #4 Auto fit-to-view on tab switch, empty state for no data
  • #5 Vite build passes with no TS errors

Final Summary

Implemented in commit c36b0ab on dev, merged to main.\n\nAdded ~460 lines to folk-crm-view.ts:\n- buildGraphData() derives nodes/edges from CRM people, companies, opportunities\n- computeGraphLayout() runs 70-iteration force simulation\n- renderGraphTab() outputs SVG with cluster/edge/node layers + zoom controls + legend\n- Full pointer interactions: drag nodes, pan canvas, wheel zoom, click-to-select\n- updateGraphNodePosition() for incremental drag without re-render