- Added mobile detection to conditionally render either WebGLImageViewer or DOMImageViewer based on device type.
- Refactored image copying logic to improve reliability and user feedback during the copy process.
- Introduced DOMImageViewer component for better handling of image interactions on mobile devices.
- Updated WebGLImageViewer to streamline image loading and context menu interactions.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced WebGLImageViewerEngine2 for optimized image rendering and interaction.
- Added support for on-demand LOD management, allowing for efficient memory usage and improved performance.
- Updated WebGLImageViewer to utilize the new engine based on image dimensions.
- Enhanced DebugInfo interface to include additional visibility region information.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed the repository URL in package.json and apps/web/package.json to reflect the new GitHub location.
- Removed StrictMode wrapper from the main.tsx file to streamline rendering of the RouterProvider component.
- Updated ActionGroup component to use dynamic repository URL for GitHub link.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated LoadingIndicator to reset state when visibility is set to false, enhancing state management.
- Removed unnecessary Freeze component from layout, simplifying the rendering logic of the ScrollArea.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed the getImageDisplaySize function to directly use original image dimensions, improving WebGL loading efficiency.
- Updated ProgressiveImage and WebGLImageViewer components to accept optional width and height props for better image handling.
- Enhanced WebGLImageViewerEngine to utilize preknown dimensions for optimized loading and rendering strategies.
- Implemented logic to handle dimension mismatches and adjust rendering strategies accordingly.
Signed-off-by: Innei <tukon479@gmail.com>
- Added utility functions for detecting mobile, iOS, Android, and tablet devices, improving responsiveness based on device type.
- Implemented performance estimation methods to assess device capabilities, allowing for optimized loading strategies.
- Updated WebGLImageViewerEngine to utilize new device detection and performance estimation features, enhancing memory management and loading behavior for large images.
- Refactored image loading and texture creation processes to avoid blocking the main thread, improving overall user experience.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new strategy for managing Level of Detail (LOD) textures, allowing only the currently needed LOD to be retained, which optimizes memory usage.
- Updated the image loading method to accept ImageData, enhancing flexibility in image processing.
- Refactored texture creation and cleanup processes to support the new LOD management strategy, ensuring efficient memory handling.
- Removed preloading logic in favor of on-demand LOD creation to further reduce memory pressure.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a conditional return to prevent rendering when loadingState.isVisible is false.
- Refactored the LoadingIndicator structure to simplify the JSX and enhance readability.
- Maintained existing loading state messages for conversion, WebGL, and image loading.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced drag optimization features to improve performance during image dragging.
- Added methods for throttled tile updates and predictive loading based on drag direction.
- Enhanced tile priority calculation to ensure better loading of visible tiles.
- Adjusted tile loading strategies based on drag state and device type for improved responsiveness.
- Implemented cleanup and state management for drag events to maintain rendering quality.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced CollapsibleSection and StatusIndicator components for better organization of debug information.
- Updated DebugInfoComponent to support collapsible sections for transform, image, memory, and tiling information.
- Improved styling and layout for better readability and user interaction.
- Adjusted debug information display logic to handle null state and added quality and memory pressure indicators.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated ProgressiveImage component to conditionally render high-resolution images based on the current image state.
- Enhanced DebugInfo component to include detailed memory usage statistics.
- Introduced a tiled rendering system in WebGLImageViewerEngine for efficient handling of large images, including memory management and cleanup strategies.
- Implemented logic to dynamically adjust loading strategies based on image size and device type.
Signed-off-by: Innei <tukon479@gmail.com>
- Added react-freeze package to manage component rendering during state changes.
- Wrapped ScrollArea in Freeze component to prevent unnecessary re-renders when the gallery is closed.
- Updated package.json and pnpm-lock.yaml to include react-freeze version 1.0.4.
Signed-off-by: Innei <tukon479@gmail.com>
- Added responsive thumbnail sizing and padding based on device type in GalleryThumbnail.
- Implemented state management for scroll container width to improve thumbnail scrolling behavior.
- Wrapped GalleryThumbnail and ExifPanel components in Suspense for better loading management in PhotoViewer.
Signed-off-by: Innei <tukon479@gmail.com>
- Replaced the gallery settings atom with atomWithStorage to persist settings across sessions.
- Added a new AdjustColumnsButton component to allow users to dynamically adjust the number of columns in the gallery based on device type.
- Implemented responsive column width calculation in the MasonryRoot component to accommodate the new column settings.
- Updated the ActionGroup component to include the new AdjustColumnsButton for better user interaction.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new DateRangeIndicator component to display the date range and location of visible photos.
- Integrated the DateRangeIndicator into the MasonryRoot component, enhancing the user interface for both mobile and desktop views.
- Implemented a custom hook, useVisiblePhotosDateRange, to calculate the date range of currently visible photos.
- Updated README to reflect the new project name and description.
Signed-off-by: Innei <tukon479@gmail.com>
- Upgraded `eslint-config-hyoban` from 4.0.7 to 4.0.8.
- Updated AWS SDK packages `@aws-sdk/client-s3` and `@aws-sdk/s3-request-presigner` from 3.823.0 to 3.824.0.
- Bumped `@tanstack/react-query` from 5.80.2 to 5.80.5.
- Updated `@types/react-dom` from 19.1.5 to 19.1.6.
- Incremented `tsdown` version from 0.12.6 to 0.12.7.
Signed-off-by: Innei <tukon479@gmail.com>
- Increased the cache size for HEIC images from 5 to 10 to improve performance.
- Refactored the cache key generation to use the source string instead of file properties.
- Updated the HEIC image processing function to accept the original URL as a parameter.
- Removed unused video cache management functions to streamline the codebase.
Signed-off-by: Innei <tukon479@gmail.com>
- Eliminated unnecessary imports from the ProgressiveImage component to streamline the codebase.
- This change enhances readability and reduces potential confusion regarding unused dependencies.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed the loading progress percentage display from the LoadingIndicator component.
- Updated the ProgressiveImage component to manage thumbnail loading state with a new useState hook.
- Adjusted the thumbnail image rendering to transition opacity based on loading state.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed the loading message for image format conversion to 'HEIC/HEIF 图片格式转换中...'.
- Updated the loading message for video transcoding to '视频转码中...'.
- Adjusted the default loading message to '图片格式转换中...' when no specific message is provided.
Signed-off-by: Innei <tukon479@gmail.com>
- Added additional characters ('\', '~', '`', "'", '{', '}') to the CHARACTERS array in extract-font-glyphs.ts.
- Updated the font path in extract-font-glyphs.ts to use SF-Pro-Display-Medium.ttf.
- Made adjustments to the character paths and dimensions in svg-text-renderer.ts for improved rendering accuracy.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated index.html to use placeholders for title and description.
- Enhanced vite.config.ts to transform HTML and replace placeholders with site configuration values.
Signed-off-by: Innei <tukon479@gmail.com>