Improve quick note editor interactions & fix filter chips responsiveness#989
Improve quick note editor interactions & fix filter chips responsiveness#989ishaanxgupta wants to merge 3 commits into
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
supermemory-app | 6e63127 | Commit Preview URL Branch Preview URL |
May 22 2026, 06:45 AM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
supermemory-mcp | 6e63127 | May 22 2026, 06:44 AM |
|
Claude finished @ishaanxgupta's task in 2m 58s —— View job Review CompleteOverview: Adds an expandable quick note editor using TipTap and improves filter chips responsiveness on mobile. Issues found:
Score: 8/10 The implementation is solid overall. The masonry key fix correctly handles mobile/desktop item differences, the filter chips layout changes are clean CSS, and the TextEditor refactor properly exposes placeholder and autoFocus props. The z-index bump for slash commands ensures they appear above the expanded modal. See inline comment for the fix suggestion. |
There was a problem hiding this comment.
Overview: Adds an expandable quick note editor using TipTap and improves filter chips responsiveness on mobile.
Issues found:
- Potential double-save when pressing Cmd+Enter in the expanded editor (see inline comment)
Score: 8/10
The implementation is solid overall. The masonry key fix correctly handles mobile/desktop item differences, the filter chips layout changes are clean CSS, and the TextEditor refactor properly exposes placeholder and autoFocus props. The z-index bump for slash commands (50→120) correctly ensures they appear above the expanded modal (z-100).
One bug to fix: the onKeyDown handler on the expanded modal's motion.div duplicates the Cmd+Enter handling that TextEditor already does internally, which could cause onSave to fire twice.
| boxShadow: | ||
| "0 28px 80px rgba(0, 0, 0, 0.55), 0 2.842px 14.211px 0 rgba(0, 0, 0, 0.25), 0.711px 0.711px 0.711px 0 rgba(255, 255, 255, 0.10) inset", | ||
| }} | ||
| onKeyDown={handleKeyDown} |
There was a problem hiding this comment.
Potential double-save on Cmd+Enter
This onKeyDown handler can fire alongside the TextEditor's internal ProseMirror handleKeyDown (which also handles Cmd+Enter), because event.preventDefault() in ProseMirror doesn't stop DOM event propagation to React handlers.
When the user presses Cmd+Enter:
- ProseMirror's handler fires → calls
onSubmit→ callshandleSaveClick→ callsonSave(draft) - Event bubbles up → this handler fires → also calls
onSave(draft)
The isSaving guard won't help because React state updates are async — both handlers execute in the same tick before isSaving becomes true.
Suggested fix: Remove this onKeyDown handler since the TextEditor already handles Cmd+Enter internally via its onSubmit prop.
On phone, the filter chips now get their own horizontally scrollable row, so All, Notes, Tweets, Web Pages, and any future connection chips can fit without squeezing. The Grid / Timeline segmented control stays grouped on the next row and aligned to the right.
The QuickNoteCard now uses the same TipTap TextEditor as the full-screen note, so typing / should show the slash-command options like headings. It also expands from 120px to 188px when focused or when it has draft content, then collapses again on blur if empty.
I also updated TextEditor so it can be used inline safely: it now supports editable={false} while saving, and it syncs external content resets without constantly resetting the editor while typing.