- Added a new texture worker to handle image loading and LOD (Level of Detail) tile creation.
- Replaced the previous TypeScript worker with a JavaScript version for improved performance and compatibility.
- Introduced message handling for loading images, creating tiles, and managing LOD levels.
- Updated the WebGLImageViewerEngine to communicate with the new worker, enhancing image processing efficiency.
Signed-off-by: Innei <tukon479@gmail.com>
- Added Thumbhash component to GalleryThumbnail for improved image loading performance.
- Updated styles in GalleryThumbnail for better visual consistency and hover effects.
- Refactored PhotoViewer to streamline the animation logic and integrate Thumbhash rendering.
- Adjusted AnimatePresence settings for smoother transitions in the PhotoViewer.
Signed-off-by: Innei <tukon479@gmail.com>
- Added PWA support using vite-plugin-pwa, including configuration for service worker and caching strategies.
- Updated index.html to include necessary meta tags for iOS Safari PWA support.
- Changed references from site.webmanifest to manifest.webmanifest for consistency.
- Removed redundant manifest generation from the favicon script, as it is now handled by vite-plugin-pwa.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed outdated setup instructions and configuration examples from README.md to streamline documentation.
- Updated site.config.ts by removing unused social media fields for a cleaner configuration structure.
Signed-off-by: Innei <tukon479@gmail.com>
- Deleted react-masonry and react-photo-view from both package.json and pnpm-lock.yaml as they are no longer needed.
- Updated the lock file to reflect the removal of these packages, ensuring a cleaner dependency tree.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced automatic conversion for TIFF format in image processing.
- Updated the description of Fujifilm simulation settings to "Fujifilm Recipe" for clarity.
- Added a new feature for sharing images to social media or embedding via iframe.
Signed-off-by: Innei <tukon479@gmail.com>
- Added Tailwind CSS plugins and configurations to improve styling across the application.
- Introduced new global styles and layout components for better structure and design consistency.
- Implemented a MasonryGallery component for responsive photo display.
- Enhanced photo item rendering with EXIF data and improved loading states.
- Updated package dependencies to include new Tailwind CSS utilities and components.
Signed-off-by: Innei <tukon479@gmail.com>
- Integrated photo existence check in the reactions API to prevent adding reactions to non-existing photos.
- Updated the LoadingIndicator component to improve styling and removed unused codecInfo state.
- Refactored the Reaction component to utilize DropdownMenu for a more user-friendly reaction selection interface.
- Introduced RootPortalProvider for better portal management in the PhotoViewer component.
Signed-off-by: Innei <tukon479@gmail.com>
- Added Thumbhash component to replace Blurhash in PhotoViewer and PhotoMasonryItem for enhanced image loading performance.
- Updated the manifest version from 'v4' to 'v5' across multiple files to reflect the new data structure.
- Introduced thumbHash generation in the image processing pipeline, ensuring compatibility with existing thumbnail logic.
- Updated package dependencies to include thumbhash version 0.1.1.
Signed-off-by: Innei <tukon479@gmail.com>
- Replaced `fallbackRender` with `fallback={null}` in ErrorBoundary components for consistency across the application.
- Updated the manifest version from 'v3' to 'v4' in multiple files to reflect the new data structure.
- Enhanced the PhotoViewer and PhotoMasonryItem components to handle potential errors more gracefully with the updated ErrorBoundary.
Signed-off-by: Innei <tukon479@gmail.com>
- Enhanced the ErrorElement component by adjusting the layout for better centering and added select-text class for improved text selection.
- Modified the HistogramChart component to accept a thumbnail URL instead of tone analysis, streamlining the data flow.
- Refactored the histogram calculation logic to improve performance and clarity, including compression of histogram data.
- Updated the manifest version from 'v2' to 'v3' across multiple files to reflect the new data structure.
Signed-off-by: Innei <tukon479@gmail.com>
- Consolidated thumbnail and blurhash processing into a dedicated data-processing module for better code organization.
- Improved the logic for reusing existing thumbnails and blurhashes, ensuring efficient handling of image processing.
- Updated the cache manager to validate cache data integrity and streamline the overall photo processing workflow.
- Enhanced logging for better traceability during thumbnail generation and processing.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced new markdown files explaining the generation of blurhash strings and the necessity for xComponent and yComponent to match during usage.
- Updated the blurhash generation logic to improve clarity and logging, ensuring accurate component calculations based on image dimensions.
- Removed unnecessary logging parameters and streamlined the thumbnail generation process for better performance.
Signed-off-by: Innei <tukon479@gmail.com>
- Refactored the ActionGroup component to improve responsiveness by introducing separate button components for mobile and desktop.
- Implemented a Drawer for mobile interactions, replacing DropdownMenu for a better user experience on mobile devices.
- Consolidated button styles and logic into reusable components, enhancing code maintainability and reducing duplication.
- Ensured that all action buttons (tag filter, column adjustment, sorting) now utilize the new responsive design, providing a consistent experience across devices.
Signed-off-by: Innei <tukon479@gmail.com>
- Implemented a check for Git user identity in the `pushManifestToRemoteRepo` function to handle cases where the identity is not configured in CI environments.
- Added logic to set a default CI user identity if none is found, ensuring smooth operation during automated deployments.
Signed-off-by: Innei <tukon479@gmail.com>
- Replaced the repository configuration in `builder.config.example.json` with S3 storage settings, including bucket and endpoint details.
- Removed the social and feed sections from `config.example.json` to simplify the configuration structure.
- Updated the README to reflect changes in the author section and added optional comments for clarity.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed the repository configuration section from the README to streamline documentation.
- Updated the build workflow to create a photos manifest JSON file before running the Vite build, enhancing the build process.
Signed-off-by: Innei <tukon479@gmail.com>
- Streamlined the precheck script by removing checks for existing directories and the builder configuration.
- Eliminated the pull-remote script, consolidating its functionality directly into the precheck process.
- The updated precheck now directly runs the builder command, enhancing efficiency and reducing complexity.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the .env.template to include GIT_TOKEN for remote repository authentication.
- Modified the Dockerfile to accept GIT_TOKEN and PG_CONNECTION_STRING as build arguments, enhancing the configuration for deployment.
Signed-off-by: Innei <tukon479@gmail.com>
- Added logic to clear the long press timer when it is already set, preventing unintended video playback triggers.
- This change enhances the user experience by ensuring that the long press action behaves as expected.
Signed-off-by: Innei <tukon479@gmail.com>
- Revised the splash screen's visual design, changing the theme to a more minimalist style.
- Updated font families and adjusted layout properties for improved aesthetics and consistency.
- Replaced the logo and loading animations with new designs, enhancing user experience during app startup.
- Simplified CSS animations and removed unused styles to streamline the code.
Signed-off-by: Innei <tukon479@gmail.com>
- Added `react-error-boundary` dependency to enhance error management in the application.
- Wrapped `Blurhash` components in `ErrorBoundary` to gracefully handle rendering errors in the gallery and debug pages.
- Updated `pnpm-lock.yaml` and `package.json` to include the new dependency version.
Signed-off-by: Innei <tukon479@gmail.com>
- Added support for long press to play Live Photos on mobile devices.
- Implemented a ref for LivePhoto component to control play and stop actions.
- Updated localization files to include new strings for Live Photo playback status.
- Enhanced CSS styles to prevent text selection and improve layout consistency.
- Refactored ExifPanel and ProgressiveImage components for better integration with Live Photo features.
Signed-off-by: Innei <tukon479@gmail.com>
- Added functionality to push updated manifests to a remote Git repository after building.
- Introduced a Git token configuration in the builder settings to authenticate pushes.
- Enhanced the CLI to handle remote repository synchronization, including cloning and pulling updates.
- Updated the builder to return detailed results on whether updates occurred during the build process.
- Revised documentation to reflect new configuration options and usage instructions.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced multiple Vite plugins including `ogImagePlugin`, `feedSitemapPlugin`, `localesJsonPlugin`, and `manifestInjectPlugin` to enhance the build process and support dynamic content generation.
- Implemented a custom hot module replacement (HMR) for JSON localization files to improve development experience.
- Added a new `createDependencyChunksPlugin` for better chunk management in the build process.
- Established a structure for handling localization files and generating corresponding assets, improving internationalization support.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed the icon color in the FloatingActionButton component from 'text-accent' to 'text-white' for better visibility.
- Removed the unused animation for the button's background when it is open, simplifying the component's rendering logic.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed the default fallback language from Chinese (zh-CN) to English (en) in the i18n configuration.
- This adjustment ensures a more accessible experience for English-speaking users.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new localization entry for successful photo reactions, enhancing user feedback in the Chinese version of the app.
- This addition improves the overall user experience by providing clear confirmation of actions taken on photos.
Signed-off-by: Innei <tukon479@gmail.com>
- Eliminated the 'edge' runtime export from multiple SSR route files to streamline the codebase.
- This change simplifies the routing logic and prepares for future enhancements in server-side rendering.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a new analysis API endpoint to aggregate view and reaction data based on a reference key.
- Introduced DTOs for type safety in the analysis API.
- Integrated SWR for data fetching in the PhotoViewer component, improving reaction handling and user feedback.
- Replaced the previous reaction handling logic with a more efficient approach using the new analysis API.
- Updated the package.json to include the @lobehub/fluent-emoji dependency for enhanced emoji support.
Signed-off-by: Innei <tukon479@gmail.com>
- Refactored the database connection logic to utilize `neondatabase`, ensuring correct imports and type safety.
- Implemented atomic upsert operations in the views API, allowing for efficient insertion and updating of records using PostgreSQL's `ON CONFLICT` clause.
- Added new dependencies `ast-kit` and `unplugin-ast` for improved AST manipulation in the project.
- Enhanced the UI components with toast notifications for user feedback on reactions and improved styling with Tailwind CSS.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a Vite plugin to inject the photos manifest into the HTML, enabling dynamic updates and hot reloading.
- Updated ESLint configuration to ignore build errors during SSR.
- Modified package.json scripts for concurrent development of SSR and web applications.
- Adjusted paths and imports for better module resolution and consistency across the codebase.
- Added type definitions for the global __MANIFEST__ variable to ensure type safety.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a link to the Chinese version of the README in the English version.
- Updated feature descriptions in both English and Chinese, changing "Smart Tags" to "File System Tags" for clarity.
- Included a new image in the Chinese README for better visual appeal.
Signed-off-by: Innei <tukon479@gmail.com>
- Implemented a height check to hide the EXIF information grid when the photo item height is less than 300px.
- Ensured that other information such as title, description, and tags remain visible regardless of the photo height.
- Updated the PhotoMasonryItem component to conditionally render the EXIF grid based on the calculated height.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed opacity transition from the EXIF information grid to ensure it is always visible.
- Simplified the layout for better accessibility of EXIF data.
Signed-off-by: Innei <tukon479@gmail.com>
- Enhanced the ProgressiveImage component to utilize the new LoadingState enum for better loading state management.
- Updated the WebGLImageViewerEngine to notify loading states using the LoadingState enum, improving clarity in loading messages.
- Refactored spring animations to use the Transition type for better type safety.
- Updated localization files to include new loading messages for WebGL operations in both English and Chinese.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed the totalViews calculation from the ManifestStats component to streamline data handling.
- Adjusted the layout to accommodate the removal of the views stat, changing the grid columns from 5 to 4.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed the PhotoManifest type to PhotoManifestItem across various components and services for consistency.
- Removed the views property from the PhotoInfo interface to streamline photo data.
- Updated rules in color.mdc and project.mdc to adjust glob patterns and application behavior.
- Enhanced the feed-sitemap plugin to utilize the new PhotoManifestItem type for better data management.
Signed-off-by: Innei <tukon479@gmail.com>
- Adjusted the styling of the ExifDataRow component to use 'self-start' for better alignment of labels.
- Modified the container div in RawExifViewer to ensure a minimum width, enhancing layout consistency.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the HistogramChart component to calculate drawing width based on the canvas's bounding rectangle, enhancing accuracy in rendering.
- Added anti-aliasing settings for smoother lines and improved visual quality.
- Adjusted hover interaction logic to ensure accurate positioning of the hover indicator, improving user experience.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced ExifTool support by adding the '@uswriting/exiftool' package to manage EXIF metadata extraction.
- Updated ExifPanel component to conditionally render raw EXIF data based on ExifTool availability.
- Enhanced localization files to include new EXIF metadata categories and descriptions for better user experience across multiple languages.
- Added a new atom to manage the loading state of ExifTool, improving state management in the application.
Signed-off-by: Innei <tukon479@gmail.com>
- Replaced existing favicon images with updated versions for better visual quality.
- Modified the favicon generation script to add rounded corners to the generated images, improving aesthetics.
- Ensured the script checks for the presence of the logo file before generating favicons.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the title in the document head to include the site configuration title for better SEO.
- Modified Open Graph and Twitter meta tags to append the site configuration title to the photo ID, improving clarity and branding in social media shares.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated ExifPanel to use translation for tone analysis title.
- Improved HistogramChart by enhancing canvas resolution and rendering quality, including anti-aliasing and smoother histogram drawing.
- Added device pixel ratio handling for better display on high-DPI screens.
Signed-off-by: Innei <tukon479@gmail.com>