feat(ui): add interactive product tour with react joyride#3655
feat(ui): add interactive product tour with react joyride#3655adithyaakrishna wants to merge 9 commits intosimstudioai:stagingfrom
Conversation
|
@adithyaakrishna is attempting to deploy a commit to the Sim Team on Vercel. A member of the Team first needs to authorize it. |
PR SummaryMedium Risk Overview Wires the tours into the app layouts ( Introduces a new EMCN Written by Cursor Bugbot for commit fd51d05. This will update automatically on new commits. Configure here. |
Greptile SummaryThis PR adds an interactive product tour using React Joyride for first-time users. The tour spans 13 steps across the home page and workflow editor, auto-starts on first login, and can be re-triggered via Help > "Take a tour" in the sidebar. The implementation uses a custom Key observations:
Confidence Score: 3/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant Layout as WorkspaceLayout
participant PT as ProductTour
participant LS as localStorage
participant Joyride as Joyride (dynamic)
participant TT as TourTooltip
participant Sidebar as Sidebar
participant Win as window
Layout->>PT: mount (on workspace load)
PT->>LS: isTourCompleted()?
alt first-time user
LS-->>PT: false
PT->>PT: setTimeout(1200ms) → setRun(true), stepIndex=0
PT->>Joyride: run=true, stepIndex=0
Joyride->>TT: render step tooltip
TT->>TT: querySelector(step.target)
alt target found
TT->>TT: createPortal(Popover, document.body)
else target not found (cross-page step)
Joyride-->>PT: callback(TARGET_NOT_FOUND)
PT->>PT: setStepIndex(index + 1) — silent skip
end
Note over PT,Joyride: User clicks Next/Back/Skip/Done
Joyride-->>PT: callback(STEP_AFTER / FINISHED / SKIPPED)
PT->>LS: markTourCompleted()
PT->>PT: setRun(false)
else returning user
LS-->>PT: true → no auto-start
end
Sidebar->>Win: dispatchEvent(START_TOUR_EVENT)
Win-->>PT: handleStartTour()
PT->>LS: resetTourCompletion()
PT->>PT: setRun(false) → setTourKey(k+1) → setTimeout(50ms) → setRun(true)
Last reviewed commit: "chore: updated modal..." |
apps/sim/app/workspace/[workspaceId]/components/product-tour/product-tour.tsx
Outdated
Show resolved
Hide resolved
apps/sim/app/workspace/[workspaceId]/components/product-tour/product-tour.tsx
Outdated
Show resolved
Hide resolved
apps/sim/app/workspace/[workspaceId]/components/product-tour/tour-steps.ts
Outdated
Show resolved
Hide resolved
apps/sim/app/workspace/[workspaceId]/w/components/sidebar/sidebar.tsx
Outdated
Show resolved
Hide resolved
apps/sim/app/workspace/[workspaceId]/components/product-tour/product-tour.tsx
Outdated
Show resolved
Hide resolved
apps/sim/app/workspace/[workspaceId]/components/product-tour/tour-tooltip.tsx
Outdated
Show resolved
Hide resolved
apps/sim/app/workspace/[workspaceId]/components/product-tour/tour-tooltip.tsx
Outdated
Show resolved
Hide resolved
apps/sim/app/workspace/[workspaceId]/components/product-tour/workflow-tour.tsx
Show resolved
Hide resolved
apps/sim/app/workspace/[workspaceId]/components/product-tour/use-tour.ts
Outdated
Show resolved
Hide resolved
...sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx
Outdated
Show resolved
Hide resolved
|
@waleedlatif1 will assign you as review for this one |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 2 total unresolved issues (including 1 from previous review).
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Summary
Type of Change
Testing
sim-tour-completed-v1from localStorage to re-trigger auto-startChecklist
Screenshots/Videos
screen-capture.14.webm