Repository navigation
v1.2.5-test
Pre-release
Pre-release
Release v1.2.5-test: Picture-in-Picture Mode, Player Optimization, and Enhanced User Experience
π Major Features & Improvements
Picture-in-Picture (PiP) Mode
- β Full PiP Implementation: Complete Picture-in-Picture mode with seamless window transitions
- π― Smart Position Memory: Automatic window position persistence and restoration between PiP modes
- π¨ Smooth Transitions: Elegant opacity animations (0.3s) to prevent visual glitches during mode changes
- π Always-On-Top Integration: Pin button in title bar with keep/keep_off icons for window control
- β‘ Optimized Window Management: Efficient Tauri window API integration with proper state handling
Component Architecture Optimization
- π§ Massive Code Reduction: Unified Player component eliminates 95% code duplication between MainPlayer and SmallPlayer
- ποΈ Variant-Based Design: Single Player component with 'main'/'small' variants using conditional rendering
- π¦ Shared Utilities: Extracted PlayerUtils.tsx for common functionality and event handlers
- π Performance Gains: Reduced bundle size from 1,380+ lines to ~560 lines in player components
Queue System Enhancements
- π Automatic Track Fetching: Implemented useMissingTrackFetcher hook for seamless metadata loading
- π Database Integration: Enhanced queue items with Spotify API caching and merged track data
- β‘ Loading State Management: Eliminated "Loading..." placeholders with proactive data fetching
- π΅ Smooth User Experience: Queue items now display complete track information immediately
User Interface Improvements
- π¨ Lyrics Performance Optimization: Enhanced CSS with GPU acceleration and smoother animations
- π± Responsive Design: Improved layout handling for different screen sizes and modes
- β¨ Visual Polish: Better transitions, typography improvements, and enhanced readability
- π― Context Menu Enhancements: Improved user interaction patterns throughout the application
π΅ PiP Mode Technical Details
Window Management
- Position Tracking: Automatic save/restore of window coordinates
- Size Optimization: Smart resizing for optimal PiP viewing experience
- State Synchronization: Seamless data flow between PiP and main window modes
- Memory Efficiency: Proper cleanup and resource management during transitions
Always-On-Top Functionality
- Pin Toggle: Dedicated button in title bar for easy access
- Visual Feedback: Clear icon states (keep/keep_off) indicating current mode
- Integration: Deep integration with PiP mode for enhanced workflow
- Tauri API: Leverages native window management capabilities
π Bug Fixes
- Fixed queue items stuck displaying "Loading..." text
- Resolved player component code duplication issues
- Eliminated visual glitches during PiP mode transitions
- Improved window state management edge cases
- Enhanced error handling in track metadata fetching
β‘ Performance Improvements
- Lyrics Rendering: GPU-accelerated animations with optimized CSS transforms
- Component Loading: Faster initialization with shared utility functions
- Memory Usage: Reduced memory footprint through code consolidation
- Transition Smoothness: Optimized opacity and transform animations for fluid experience
οΏ½ Technical Architecture
- Component Unification: Single source of truth for player functionality
- Hook Optimization: Custom hooks for data fetching and state management
- TypeScript Enhancement: Improved type safety across player components
- CSS Performance: Modern CSS features for hardware acceleration
π¨ UI/UX Enhancements
- Seamless Mode Switching: Intuitive PiP toggle with visual feedback
- Responsive Layout: Adaptive design for different window modes
- Enhanced Typography: Improved readability in lyrics and UI text
- Visual Consistency: Unified design language across all components
π¦ Technical Improvements
- Player component architecture completely refactored for maintainability
- Enhanced data flow patterns with optimized React hooks
- Improved CSS performance with modern animation techniques
- Better error handling and loading state management
- Comprehensive TypeScript type coverage for new features
π Breaking Changes
- None - All changes are backward compatible
π― Developer Experience
- Code Maintainability: Significantly reduced codebase complexity
- Development Speed: Faster iteration with shared component architecture
- Type Safety: Enhanced TypeScript coverage for new PiP features
- Performance Monitoring: Better debugging capabilities for window management
π Notes
- Version bump to 1.2.5-test
- Major focus on user experience and performance optimization
- PiP mode ready for production testing
- Comprehensive player component refactoring complete
- Enhanced queue system with proactive data loading
- All new features designed with accessibility and performance in mind
This release provides users with a modern, efficient, and highly polished music streaming experience through innovative PiP functionality and dramatically optimized codebase architecture.