- Added logging for the builder configuration using consola for better visibility.
- Updated the merge function to improve user configuration handling.
- Introduced new dependencies: es-toolkit for merging configurations and consola for logging.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed environment files from the ignore list.
- Updated paths to include SSR-specific index files.
- Cleaned up unnecessary entries for better clarity.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed redundant COPY commands for config files.
- Eliminated debug output from the Dockerfile to streamline the build process.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a Dockerfile to facilitate building and running the Next.js application in a pnpm monorepo.
- Added a .dockerignore file to exclude unnecessary files and directories from the Docker context.
- Configured multi-stage builds for optimized image size and performance.
- Set up environment variables and user permissions for production readiness.
Signed-off-by: Innei <tukon479@gmail.com>
- Added SF Pro Display font for improved typography in OG images.
- Increased padding and dimensions for better visual presentation.
- Updated font sizes and margins for titles, descriptions, and tags to enhance readability.
- Adjusted layout properties for image containers and text alignment.
Signed-off-by: Innei <tukon479@gmail.com>
fix(og): update typography and layout for OG images
- Changed letter spacing from 2px to 1px for improved text clarity.
- Updated font family to include Geist for enhanced visual consistency.
Signed-off-by: Innei <tukon479@gmail.com>
feat(og): enhance OG image styling with new background and decorative elements
Signed-off-by: Innei <tukon479@gmail.com>
update og
- Refactored the HTML template in `index.html` to use EJS-style placeholders for dynamic title and description.
- Added `vite-plugin-html` to the project for improved HTML handling and dynamic content injection during the build process.
- Updated `vite.config.ts` to configure the HTML plugin for minification and data injection.
- Adjusted `package.json` to include the new `vite-plugin-html` dependency.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the build script to use Vite for improved performance and modern module support.
- Added TypeScript configuration file for better type checking and module resolution.
- Included unplugin-dts for automatic TypeScript declaration file generation.
- Updated package dependencies to reflect the new build setup.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated DebugInfo interface to replace tiling properties with a new tileSystem structure for better management of tile-related data.
- Deleted the lodWorker.ts file, which contained the LOD processing logic, as it is no longer needed.
- Introduced a new texture.worker.ts file to handle tile creation using OffscreenCanvas, improving performance and memory management.
Signed-off-by: Innei <tukon479@gmail.com>
- Added caching headers to the OG image generation route for improved performance and caching efficiency.
- Updated the title template in the useTitle hook to utilize the site configuration for dynamic title management.
- Integrated the useTitle hook in the photo detail page to set the document title based on the current photo.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated various dependencies in `package.json` and `pnpm-lock.yaml` for better compatibility and performance.
- Enhanced the build process to ensure smoother integration of new features and packages.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the build script to convert `index.html` to a TypeScript module (`index.html.ts`).
- Refactored routes to directly import the HTML content instead of fetching it.
- Removed the `getIndexHtml` function and its associated constants as they are no longer needed.
- Updated `.gitignore` to include new files and removed the Geist font file.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a new package `@photo-gallery/data` to manage photo data and metadata.
- Updated various components to utilize the new photoLoader from the data package.
- Adjusted dependencies in `pnpm-lock.yaml` and `package.json` files to include the new package.
- Refactored imports across the application to streamline photo data access.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed the iteration logic to process photos in reverse order, improving the handling of the latest photos.
- Introduced a variable to store the minimum length for cleaner and more readable code.
Signed-off-by: Innei <tukon479@gmail.com>
- Added state management for high-resolution image rendering to improve user experience.
- Updated image loading logic to reset high-resolution state when the image source changes.
- Modified rendering conditions to prevent displaying the high-resolution image until fully loaded.
Signed-off-by: Innei <tukon479@gmail.com>
- 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>