Commit Graph

59 Commits

Author SHA1 Message Date
Innei
dbc389d630 chore(dockerignore): update .dockerignore to exclude environment files and adjust paths for SSR assets
- 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>
2025-06-11 00:08:09 +08:00
Innei
ded9755a58 refactor(builder): remove maxPhotos option and related checks
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-10 20:11:16 +08:00
Innei
2a92ff0ff1 style: enhance OG image layout and design for improved aesthetics
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-10 19:46:45 +08:00
Innei
08fa7fa337 chore: update dockerfile
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-10 19:23:33 +08:00
Innei
c496a78954 refactor(docker): clean up Dockerfile by removing unnecessary COPY commands and debug output
- 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>
2025-06-10 19:21:45 +08:00
Innei
8aedfb4bf5 fix(docker): ensure preinstall script runs before dependency installation
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-10 19:18:42 +08:00
Innei
0bf70fa6b6 fix(docker): remove duplicate dependency installation in Dockerfile
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-10 19:16:27 +08:00
Innei
3f19e6be51 feat(docker): add Dockerfile for Next.js app in pnpm monorepo
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-10 19:13:31 +08:00
Innei
3632286e1d feat(package): add build:manifest script to package.json for manifest generation
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-10 19:00:00 +08:00
Innei
7f0eb717c1 feat(docker): add Dockerfile and .dockerignore for Next.js app deployment
- 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>
2025-06-10 18:59:14 +08:00
pseudoyu
2f5d66a4dd fix: backblaze s3 api issue (#3) 2025-06-10 18:04:50 +08:00
Innei
960212955f chore(env): add symlink to root .env file for environment configuration
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-10 16:56:29 +08:00
Innei
9630aa9a85 feat(og): enhance image generation with new font and layout adjustments
- 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
2025-06-10 16:53:04 +08:00
Innei
898bd18c44 Refactor code structure for improved readability and maintainability
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-10 14:45:38 +08:00
Innei
bfeb0685ea feat(web): update HTML template and integrate vite-plugin-html for dynamic content injection
- 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>
2025-06-09 22:53:20 +08:00
Innei
c00d1b9d18 feat(webgl-viewer): integrate Vite for build process and add TypeScript configuration
- 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>
2025-06-09 21:37:38 +08:00
Innei
caa09110dd feat: add SlidingNumber component and integrate scale indicator in ProgressiveImage
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-09 00:52:26 +08:00
Innei
2eb3020daa release: v0.1.0 v0.1.0 2025-06-09 00:39:15 +08:00
Innei
945a8ebe1a refactor: simplify LOD levels and remove unused device detection constants
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-09 00:28:03 +08:00
Innei
972893b2da Refactor WebGL viewer interfaces and remove LOD worker
- 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>
2025-06-09 00:12:15 +08:00
Innei
acc8a37625 feat: enhance caching and title management
- 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>
2025-06-08 22:14:51 +08:00
Innei
53d5b2710c chore: add gitkeep
- 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>
2025-06-08 22:04:27 +08:00
Innei
8927a5d3b9 refactor: update HTML handling and remove unused constants
- 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>
2025-06-08 21:51:59 +08:00
Innei
67a948ddeb feat: introduce @photo-gallery/data package for centralized photo management
- 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>
2025-06-08 20:46:19 +08:00
Innei
6641ce4404 fix: refactor GET handler to streamline meta tag removal and response generation
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-08 16:27:06 +08:00
Innei
2797affea2 fix: move Geist font loading inside GET handler
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-08 16:15:44 +08:00
Innei
53244bbf02 fix: improve error response message in OG image generation
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-08 16:11:59 +08:00
Innei
75993531a7 fix: correct meta tag attribute handling and refactor Open Graph and Twitter Card meta tag insertion
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-08 16:03:34 +08:00
Innei
f1705e62a1 fix: update build script
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-08 15:55:10 +08:00
Innei
588c9ab5ea feat: cf pages
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-08 15:41:38 +08:00
Innei
c03fdc7391 feat: add ssr for og gerenation
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-08 15:36:07 +08:00
Innei
7e1600c7e8 fix: optimize photo processing in generateOGImage function
- 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>
2025-06-07 17:59:49 +08:00
Innei
a76462fa85 feat: enhance ProgressiveImage with high-resolution rendering state management
- 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>
2025-06-07 17:12:05 +08:00
Innei
b990bd5f65 feat: enhance ProgressiveImage with mobile support and improved image handling
- 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>
2025-06-07 17:04:10 +08:00
Innei
3a0153d564 feat: enhance WebGL image viewer with new engine and improved LOD management
- 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>
2025-06-06 22:43:30 +08:00
Innei
7d7d3ca159 chore: update repository URL and simplify main.tsx rendering
- 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>
2025-06-06 20:42:45 +08:00
Innei
70a1fe4d8c refactor: improve LoadingIndicator state management and simplify layout
- 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>
2025-06-06 18:31:51 +08:00
Innei
3907a9c732 refactor: optimize image loading and rendering in PhotoViewer and WebGLImageViewer
- 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>
2025-06-06 16:03:43 +08:00
Innei
3a64e62124 feat: enhance device detection and performance estimation in WebGLImageViewerEngine
- 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>
2025-06-06 15:49:52 +08:00
Innei
8f2abb330b feat: implement on-demand LOD management in WebGLImageViewerEngine
- 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>
2025-06-06 14:31:08 +08:00
Innei
b7366368e8 fix: improve LoadingIndicator component visibility and structure
- 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>
2025-06-06 13:22:52 +08:00
Innei
08a58b4486 feat: enhance WebGLImageViewerEngine with drag optimization and tile management
- 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>
2025-06-06 02:35:12 +08:00
Innei
0c9784acd7 feat: enhance DebugInfo component with collapsible sections and improved layout
- 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>
2025-06-06 01:58:31 +08:00
Innei
25521e2af6 feat: enhance ProgressiveImage and WebGLImageViewerEngine with memory management and tiled rendering
- 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>
2025-06-06 01:50:45 +08:00
Innei
26c93dbf9d backup
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-06 00:53:35 +08:00
Innei
e5597cdbe7 feat: integrate react-freeze for improved UI performance
- 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>
2025-06-05 23:08:06 +08:00
Innei
f27915bb62 feat: enhance GalleryThumbnail and PhotoViewer components for better responsiveness
- 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>
2025-06-05 22:56:00 +08:00
Innei
47f54ad11c feat: enhance gallery settings with adjustable column layout
- 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>
2025-06-05 21:51:15 +08:00
Innei
0b6160f6d5 feat: add DateRangeIndicator component and integrate into MasonryRoot
- 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>
2025-06-05 21:08:36 +08:00
Innei
b51d81bd47 chore: update package dependencies and versions
- 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>
2025-06-05 18:43:36 +08:00