feat: enhance UI with custom sort dropdown, resizable layouts, StackView DnD, and optimize slider/resize performance with layout fixes.

This commit is contained in:
2025-12-18 02:06:57 +01:00
parent ebfdfef5ae
commit db601048d9
13 changed files with 589 additions and 101 deletions

View File

@@ -0,0 +1,27 @@
# Work Plan - Optimize Card Slider Performance
## Request
The user reported that resize handlers (likely sliders) were still laggy.
## Changes
- **DraftView.tsx**:
- Introduced `localCardScale` for immediate slider feedback.
- Used CSS Variable `--card-scale` on container to update card sizes entirely via CSS during drag.
- Deferred `cardScale` state update (which triggers React re-renders) to `onMouseUp`.
- **DeckBuilderView.tsx**:
- Introduced `localCardWidth` for immediate slider feedback.
- Used CSS Variable `--card-width` on container.
- Updated `gridTemplateColumns` to use `var(--card-width)`.
- Deferred `cardWidth` state update to `onMouseUp`.
- Cleaned up duplicate state declarations causing lint errors.
- **CubeManager.tsx**:
- Introduced `localCardWidth` and CSS Variable `--card-width`.
- Updated Grid layout to use CSS Variable.
- Deferred state update to `onMouseUp`.
## Verification
- **Performance**: Slider dragging should now be 60fps smooth as it touches 0 React components during the drag, only updating a single CSS variable on the root container.
- **Persistence**: Releasing the slider saves the value to state and localStorage.
- **Logic**: complex logic like `useArtCrop` (which depends on specific widths) updates safely on release, preventing flicker or heavy recalculations during drag.