- Add ReloadOutlined icon import for refresh functionality
- Implement handleRefreshAd() to reload iframes with cache-busting timestamps
- Add refresh button next to share button with consistent styling
- Show refresh button only for ads containing HTML files (iframe content)
- Add user feedback messages for successful refresh operations
- Prevent unnecessary refresh buttons on image-only or video-only ads
HTML ads with animations can now be restarted without full page reload.
Button appears conditionally based on file type detection.
- Add generateAdId() function to create unique hashes from ad names and categories
- Implement handleCopyLink() to copy shareable links with anchor fragments
- Add scroll-to-anchor functionality with 20px offset to avoid navigation overlap
- Add visual highlight animation when navigating to shared links
- Import message component for user feedback on successful copy operations
Each ad now gets a unique ID and share button that copies a direct link.
Shared links automatically scroll to the target ad with proper offset.
- Change mobile header from sticky to fixed positioning
- Add left, right, and width properties for full viewport coverage
- Prevent header from scrolling horizontally with wide content
- Add top padding to mobile content to compensate for fixed header
- Ensure consistent behavior between mobile and desktop navigation
- Fix content being hidden behind fixed header on mobile devices
- Replace tabs with select dropdown on mobile devices for better UX
- Add responsive Layout.Header for mobile with proper styling
- Implement hybrid CSS approach: static styles in CSS, dynamic in inline
- Add mobile-specific select styling with transparent background
- Remove unused CaretDownOutlined import, use EllipsisOutlined for dropdown
- Optimize mobile header layout with compact zoom controls
- Separate mobile and desktop rendering logic for better maintainability
- Add CSS class for mobile project header with proper positioning
- Add tabs overflow handling with EllipsisOutlined more button
- Simplify tabs styling by removing dynamic CSS injection
- Add consistent background and color styling for tab navigation
- Improve zoom controls with circular buttons and proper icons
- Style more button and disabled states for better visibility
- Clean up unused CSS rules and improve maintainability
- Fix tab bar extra content layout using div instead of span
- Fix dark mode overscroll areas with proper background colors
- Add mobile responsiveness for project logos in header
- Improve viewport handling with interactive-widget support
- Update app title to proper case 'AdsPreview'
- Add mobile-friendly padding adjustments for tabs and headers
- Update .gitignore to exclude .code-workspace files
- Enhance CSS with anticon color overrides and mobile breakpoints
- Removed area/ directory with 816MB of media files
- Removed sensitive FTP credentials from Git history
- Implemented .env.upload system for secure deployments
- Added comprehensive .gitignore for future protection
This commit represents a clean slate with all sensitive data removed.