Skip to content

UI improvements: panel reactivity, drag preview, area card & rename fix#23

Merged
Thopiax merged 5 commits intomainfrom
claude/crazy-joliot
Feb 22, 2026
Merged

UI improvements: panel reactivity, drag preview, area card & rename fix#23
Thopiax merged 5 commits intomainfrom
claude/crazy-joliot

Conversation

@Thopiax
Copy link
Owner

@Thopiax Thopiax commented Feb 22, 2026

Summary

  • Fix auto-scroll on Plant page — Reduced DndContext autoScroll threshold from 20% to 5% so the Areas panel no longer yanks upward when dragging a habit toward the Cycle panel
  • Fix drag preview from CycleDeckMomentStack uses "stack-{momentId}" as its dnd-kit ID but the overlay was doing allMoments[activeId] which returned null. Now extracts the real momentId from data.current.momentId so the card preview appears during drag
  • CycleDeck collapse toggle + p hotkey — Added chevron button in CycleDeck header and a cycleDeckCollapsed$ observable. The p hotkey now toggles CycleDeck when an active cycle is present, and DrawingBoard otherwise (they're mutually exclusive)
  • Redesign EmptyAreaCard — Replaced the oversized circle layout with a compact dashed-border card matching PlanAreaCard dimensions; header row with small icon + label, cleaner hover states
  • Fix area rename/tag save bughandleSaveName was only persisting changes when the area name changed. Tag-only edits were silently dropped. Now saves whenever name OR tags differ from the stored values

Test Plan

  • Plant page: drag a habit slowly toward the Cycle panel — Areas section should not scroll prematurely
  • Cultivate with active cycle: drag a MomentStack card from CycleDeck to Timeline — drag preview should follow cursor
  • Press p with an active cycle — CycleDeck should collapse/expand; chevron button in header should also toggle
  • Press p with no active cycle — DrawingBoard should still toggle as before
  • Plant page: the "New area" card should look compact and consistent with existing area cards
  • Click an area name to edit, change only the tags (not the name), blur — changes should be saved

🤖 Generated with Claude Code

Tunes DndContext autoScroll threshold to 5% from edge (was 20%)
so the Areas panel no longer scrolls when dragging a habit toward
the Cycle panel below.
MomentStack registers draggables as 'stack-{momentId}' but DnDProvider
was looking up allMoments[activeId] with that raw string, returning null.
Now extracts the real momentId from data.current.momentId so the overlay
renders correctly when dragging from the CycleDeck to the Timeline.
- Add cycleDeckCollapsed$ observable to ui-store (mirrors drawingBoardExpanded$ pattern)
- Add chevron toggle button to CycleDeck header (shows only header when collapsed)
- Update p hotkey to toggle CycleDeck when active cycle is present, DrawingBoard otherwise
- Update CycleDeck tests to mock all three useValue calls correctly
EmptyAreaCard:
- Replace oversized circle+text layout with a compact dashed-border card
- Header matches PlanAreaCard height for visual consistency
- Small square + icon replaces the large circle
- Cleaner hover states using stone tones only

PlanAreaCard:
- Fix handleSaveName to also save when only tags changed
  (previously only saved when area name changed, losing tag edits entirely)
@vercel
Copy link

vercel bot commented Feb 22, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
zenborg Ready Ready Preview, Comment Feb 22, 2026 2:27pm

@Thopiax Thopiax merged commit 363acdb into main Feb 22, 2026
2 checks passed
@Thopiax Thopiax deleted the claude/crazy-joliot branch February 22, 2026 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant