feat: add comprehensive interaction enhancements#5
Merged
Conversation
- Add centralized SvgService for DOM abstraction and improved testability - Implement comprehensive error handling with typed Result patterns - Fix WorkerManager race conditions with proper task-worker mapping - Optimize rendering performance with DocumentFragment batching - Add runtime validation utilities with boundary checking - Create configuration constants to eliminate magic numbers - Add comprehensive test suites for critical components - Improve type safety across worker communication - Implement memory-efficient gradient rendering - Add proper error recovery and worker replacement mechanisms
- Upgrade all dependencies to latest compatible versions - Update web-vitals to v5.1.0 with new INP metric (replaces FID) - Add npm overrides for TypeScript 5.6.3 compatibility with react-scripts - Add .npmrc with legacy-peer-deps for deployment environments - Add @babel/plugin-proposal-private-property-in-object to resolve warnings - Update @testing-library packages to latest versions - Upgrade @reduxjs/toolkit, react-redux, and other core dependencies - Maintain TypeScript 5.6.3 with modern language features
- Add GitHub Actions workflow for PR validation with parallel jobs - Include lint, type check, unit tests, and build verification - Configure Node.js 22.x with proper caching and legacy peer deps - Add comprehensive npm scripts for CI testing and linting - Create .nvmrc for consistent Node.js version across environments - Add basic validation tests demonstrating testing infrastructure - Upload build artifacts with 7-day retention for debugging - Ensure zero lint warnings and full TypeScript compliance
- Remove lint and type check jobs (handled by development workflow) - Remove production build job (handled by Vercel deployment) - Focus on unit test execution for PR validation - Streamline workflow to single job for faster feedback - Maintain Node.js 22.x with npm caching for performance
…le files - Deleted CLAUDE.md as it was no longer needed. - Updated formatting in MenuPanel.tsx for consistency. - Cleaned up gradientRenderer.ts by removing unnecessary line breaks. - Standardized string quotes in constants.ts from single to double quotes. - Improved formatting and consistency in reportWebVitals.ts. - Refactored SvgService.ts for better readability and consistency. - Enhanced WorkerManager.ts with consistent formatting and improved readability. - Cleaned up delaunayWorker.ts for better code structure and consistency. - Refactored error handling in errors.ts for improved readability. - Updated validation.test.ts for consistent formatting and improved readability. - Cleaned up validation.ts for better structure and consistency.
- Implement keyboard shortcuts for all modes and actions (D/S/E/F for modes, Ctrl+Z/Y for undo/redo, 1/2/3 for views) - Add full undo/redo system with 50-step history and automatic state preservation - Enhance visual feedback with hover previews and dynamic cursors - Implement canvas zoom (mouse wheel) and pan (Alt+drag/middle-click) with coordinate transformation - Add point selection mode with multi-select support and visual highlighting - Integrate selection system across all rendering modes (gradient, lines, dots) - Add Delete key support for removing selected points - Improve overall UX with professional-grade interaction patterns
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Keep all enhanced interaction features: - Point selection functionality in all renderers - Canvas transform and zoom/pan features - Keyboard shortcuts and undo/redo system - Visual feedback enhancements
Resolves TypeScript build error by including 'select' mode in CUSTOM_CURSORS record
- Add showVertices boolean to canvas state with local storage persistence - Conditionally render point circles in all renderers based on showVertices flag - Add 'Display' menu section with hide/show vertices button - Add 'V' keyboard shortcut to toggle vertex visibility - Enables clean triangulation view without vertex points when desired
Resolves TypeScript build error by adding SHOW_VERTICES constant to storage config and updating canvas slice to use typed constant instead of string literal
Users can now click to draw points immediately on page load without needing to switch modes first. Mode is no longer persisted in localStorage to ensure consistent UX.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.