mirror of
https://github.com/The-Low-Code-Foundation/OpenNoodl.git
synced 2026-03-08 01:53:30 +01:00
Phase 5 - BYOB Backend (TASK-007A/B): - LocalSQL Adapter with full CloudStore API compatibility - QueryBuilder translates Parse-style queries to SQL - SchemaManager with PostgreSQL/Supabase export - LocalBackendServer with REST endpoints - BackendManager with IPC handlers for Electron - In-memory fallback when better-sqlite3 unavailable Phase 3 - GitHub Panel (GIT-004): - Issues tab with list/detail views - Pull Requests tab with list/detail views - GitHub API client with OAuth support - Repository info hook integration Phase 3 - Editor UX Bugfixes (TASK-013): - Legacy runtime detection banners - Read-only enforcement for legacy projects - Code editor modal close improvements - Property panel stuck state fix - Blockly node deletion and UI polish Phase 11 - Cloud Functions Planning: - Architecture documentation for workflow automation - Execution history storage schema design - Canvas overlay concept for debugging Docs: Updated LEARNINGS.md and COMMON-ISSUES.md
7.0 KiB
7.0 KiB
BUG-3: Comment System UX Overhaul
Priority: P1 - Significant UX annoyance
Status: 🎨 Design phase
Introduced in: Existing feature, but UX needs improvement
Problems
1. Inconsistent Positioning
Function/Expression/Script nodes have comment icon on the LEFT side, while other nodes have it on the RIGHT side.
2. Too Easy to Click Accidentally
When clicking a node to view its properties, it's very easy to accidentally click the comment icon instead, opening the comment modal unexpectedly.
Agreed UX Solution
Based on user feedback, the new design will:
- Remove comment button from canvas node entirely
- Show small indicator icon on node ONLY when comment exists
- Add comment button to property panel header
- Show comment preview on hover over indicator icon
New UX Flow
When Node Has NO Comment
Canvas:
- No comment indicator visible on node
- Clean, minimal appearance
Property Panel:
- Comment button in header bar (e.g., next to other actions)
- Clicking opens modal to add comment
When Node HAS Comment
Canvas:
- Small indicator icon visible (e.g., 💬 or note icon)
- Icon positioned consistently (top-right corner)
- Icon does NOT intercept clicks (proper z-index/hit area)
On Hover:
- Tooltip/popover appears showing comment preview
- Preview shows first 2-3 lines of comment
- Clear visual indication it's a preview
Property Panel:
- Comment button shows "Edit Comment" or similar
- Clicking opens modal with existing comment
Visual Design
Canvas Node With Comment
┌────────────────────────┐
│ 💬 │ ← Small indicator (top-right)
│ MyFunctionNode │
│ │
│ ○ input output ○ │
└────────────────────────┘
Hover Preview
┌────────────────────────┐
│ 💬 │
│ MyFunctionNode ┌────┴───────────────────────┐
│ │ Comment Preview │
│ ○ input output│ This function handles... │
└───────────────────│ the user authentication │
│ [...more] │
└────────────────────────────┘
Property Panel Header
┌────────────────────────────────┐
│ MyFunctionNode [💬] [⋮] [×] │ ← Comment button in header
├────────────────────────────────┤
│ Properties... │
│ │
Implementation Plan
Phase 1: Property Panel Comment Button
- Add comment button to property panel header
- Wire up to existing comment modal
- Show different text based on comment existence:
- "Add Comment" if no comment
- "Edit Comment" if has comment
Phase 2: Canvas Indicator (Conditional)
- Modify node rendering to show indicator ONLY when
node.commentexists - Position indicator consistently (top-right, 6px from edge)
- Make indicator small (10px × 10px)
- Ensure indicator doesn't interfere with node selection clicks
Phase 3: Hover Preview
- Add hover detection on indicator icon
- Show popover with comment preview
- Style popover to look like tooltip
- Position intelligently (avoid screen edges)
Phase 4: Remove Old Canvas Button
- Remove comment button from all node types
- Clean up related CSS
- Verify no regressions
Files to Modify
Property Panel Header
Create new component:
packages/noodl-editor/src/editor/src/views/panels/propertyeditor/PropertyPanelHeader.tsx
Or modify existing if header component already exists.
Node Rendering
Update:
packages/noodl-editor/src/editor/src/views/nodegrapheditor/NodeGraphEditorNode.ts- Remove comment button rendering
- Add conditional comment indicator
- Fix positioning inconsistency
Comment Indicator Component
Create:
packages/noodl-editor/src/editor/src/views/nodegrapheditor/CommentIndicator.ts- Render small icon
- Handle hover events
- Show preview popover
Detailed Specs
Comment Indicator Icon
- Size: 10px × 10px
- Position: 6px from top-right corner of node
- Icon: 💬 or SVG note icon
- Color:
--theme-color-fg-default-shy(subtle) - Color (hover):
--theme-color-fg-highlight(emphasized) - Z-index: Should not block node selection clicks
Comment Preview Popover
- Max width: 300px
- Max height: 150px
- Padding: 12px
- Background:
--theme-color-bg-2 - Border: 1px solid
--theme-color-border-default - Shadow:
0 4px 12px rgba(0,0,0,0.15) - Text: First 200 characters of comment
- Overflow: Ellipsis ("...") if comment is longer
- Positioning: Smart (avoid screen edges, prefer top-right of indicator)
Property Panel Comment Button
- Position: Header bar, near other action buttons
- Icon: 💬 or comment icon
- Tooltip: "Add Comment" or "Edit Comment"
- Style: Consistent with other header buttons
Edge Cases
- Long comments: Preview shows first 200 chars with "..."
- Multiline comments: Preview preserves line breaks (max 3-4 lines)
- Empty comments: Treated as no comment (no indicator shown)
- Node selection: Indicator doesn't interfere with clicking node
- Multiple nodes: Each shows own indicator/preview independently
- Read-only mode: Indicator shown, but button disabled or hidden
Testing Plan
Canvas Indicator
- Indicator ONLY shows when comment exists
- Indicator positioned consistently on all node types
- Indicator doesn't interfere with node selection
- Indicator small and subtle
Hover Preview
- Preview appears on hover over indicator
- Preview shows first ~200 chars of comment
- Preview positioned intelligently
- Preview disappears when hover ends
- Preview doesn't block other UI interactions
Property Panel Button
- Button visible in header for all nodes
- Button opens existing comment modal
- Modal functions identically to before
- Button text changes based on comment existence
Removed Old Button
- No comment button on canvas nodes
- No positioning inconsistencies
- No leftover CSS or dead code
Success Criteria
- Comment button only in property panel (no accidental clicks)
- Canvas indicator only when comment exists
- Indicator positioned consistently across all node types
- Hover preview is helpful and doesn't obstruct workflow
- Can add/edit/remove comments same as before
- No confusion about how to access comments
- Overall cleaner, more intentional UX
Last Updated: January 13, 2026