feat: board thumbnails, inline rename, UX overhaul + zoom/counter fixes

- Auto-generate board thumbnail from canvas content on save (webp, 400px)
- Collection cards show stacked/fanned board thumbnails with random offsets
- Three-dot menu on all cards with Rename, Share, Delete actions
- Inline rename for collections (header + card) and boards
- Collection cards show public/private status and member count
- Share button on collection cards for quick access
- Add updateCollection/updateBoard API functions
- Add thumbnail + object_count columns to boards table with migration
- Fix zoom drift: use element-relative coords (offsetX/Y) not getScenePoint
- Fix thumbnail generation breaking viewport: use finally block for restore
- Fix thumbnail bounds: use scene-space obj coords not screen-space getBoundingRect
- Fix object counter: live count from canvas instead of stale DB images table
- Fix three-dot menu clipping by removing overflow:hidden from card containers
- Status bar shows "objects" instead of "images", updates on add/delete
This commit is contained in:
Hiren
2026-03-09 19:10:25 +05:30
parent 00c3370634
commit 0c9ab32aef
8 changed files with 824 additions and 305 deletions
+1 -1
View File
@@ -56,7 +56,7 @@ export default function StatusBar({ boardName, imageCount, saveStatus }: StatusB
<div style={styles.bar}>
<div style={styles.left}>
<span style={styles.name}>{boardName}</span>
<span>{imageCount} image{imageCount !== 1 ? 's' : ''}</span>
<span>{imageCount} object{imageCount !== 1 ? 's' : ''}</span>
</div>
<div style={styles.right}>
<span style={{ ...styles.dot, background: status.color }} />