Commit Graph

299 Commits

Author SHA1 Message Date
Innei
da487a3000 refactor: update color documentation and enhance ErrorElement component
- Revised color documentation to streamline usage of Apple UIKit colors with Tailwind CSS, emphasizing the correct prefixes for different color categories.
- Refactored the ErrorElement component to improve layout and user experience, including a more structured error display and action buttons for reloading and going back.
- Removed unused translation imports and adjusted the error message presentation for clarity.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-15 00:19:46 +08:00
Magren
988846c46a fix: enhance EXIF panel and tooltip functionality (#62) 2025-07-14 10:53:32 +08:00
Bojin Li
c752dc4f7d fix(i18n): add missing translation key and remove hardcoded string (#60) 2025-07-13 20:21:52 +08:00
woolen-sheep
279ec609b0 fix: missing handleNext in PhotoViewer (#59) 2025-07-12 12:54:51 +08:00
Innei
6c702ef9f1 feat: enhance Masonry component with reposition functionality
- Added a `reposition` method to the Masonry component, allowing for dynamic layout adjustments.
- Updated MasonryRoot to utilize the new ref for repositioning when photos change.
- Introduced a new script command "web" in package.json for easier development with Vite.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-12 00:22:41 +08:00
Innei
440e051351 refactor: simplify PhotoViewer navigation and improve EXIF data formatting
- Removed unnecessary ellipsis handling in the Row component for displaying EXIF data.
- Enhanced PhotoViewer navigation by directly invoking swiper methods for previous and next slides.
- Updated SharePanel to ensure proper URL formatting for iframe sharing.
- Extracted photo filtering and sorting logic into a separate function for better reusability and clarity in usePhotoViewer hook.
- Adjusted layout to utilize the new getFilteredPhotos function for improved photo management.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-11 23:35:05 +08:00
ChrAlpha
5fcc03a8af fix: CLS between hover card and selected card (#56) 2025-07-11 18:43:39 +08:00
Wenzhuo Liu
d7f24621bf fix: disable hdr badge if screen doesn't support it (#55) 2025-07-11 18:42:55 +08:00
Innei
bf4f63cc95 feat: add HDRBadge component to display HDR status in photo viewer
- Introduced a new HDRBadge component that visually indicates HDR status.
- Integrated HDRBadge into the ProgressiveImage component to conditionally render when HDR images are displayed.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-10 15:43:07 +08:00
Innei
80c946b9c5 chore: update local development server port to 13333
- Changed the development server port from 3000 to 13333 in multiple files for consistency across the application.
- Updated URLs in SSR routes and configuration files to reflect the new port.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-10 15:37:12 +08:00
woolen-sheep
d020977e07 fix: Zoom and ContextMenu not working (#53) 2025-07-10 03:18:03 +08:00
Wenzhuo Liu
6ec545a6a5 feat: display hdr image using dom image viewer (#52) 2025-07-09 22:37:04 +08:00
EmccK
256becf604 feat: add local storage provider and photos static plugin (#40)
Co-authored-by: MaxtuneLee <60775796+MaxtuneLee@users.noreply.github.com>
2025-07-09 13:23:32 +08:00
MaxtuneLee
3f6f12aba3 Fix/live photo zoom (#49)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-09 12:17:56 +08:00
ChrAlpha
891f059445 fix(map): simplify marker selection handling (#44) 2025-07-07 23:37:22 +08:00
Innei
1e834bf7db feat: enhance SSR route handling with DOM manipulation
- Integrated DOMParser from linkedom to parse the HTML document.
- Injected configuration into the document using the new injectConfigToDocument function.
- Updated the response to return the modified HTML for improved server-side rendering.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-07 23:35:53 +08:00
ChrAlpha
124f6ae1df refactor: enhance error handling in image loading (#42) 2025-07-07 20:16:00 +08:00
Innei
0d7866d8a7 chore: remove unused map image file
- Deleted the obsolete 1.png image from the map component directory to clean up the project and reduce unnecessary file clutter.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-07 17:26:50 +08:00
ChrAlpha
7310555c1a feat: map explore page (#29)
Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: MaxtuneLee <max@xox.im>
Co-authored-by: Innei <tukon479@gmail.com>
2025-07-07 17:22:56 +08:00
Innei
139607185e refactor: simplify video conversion logging in ImageLoaderManager
- Removed the explicit logging of the conversion method from the video conversion completion message to streamline the output.
- Maintained the logging of the converted video size for clarity in processing results.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-05 15:01:25 +08:00
Innei
013b7341fe refactor: remove conversion method from LivePhoto component and related utilities
- Eliminated the conversion method state and related logic from the LivePhoto component to simplify video processing.
- Updated the video conversion utilities to remove references to the 'transmux' method, streamlining the conversion result structure.
- Adjusted the LivePhoto component's rendering logic to reflect these changes, enhancing clarity and maintainability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-05 14:59:58 +08:00
Innei
fcd9c31164 refactor: simplify gallery settings atom by removing storage integration
- Replaced the atomWithStorage implementation with a standard atom for gallery settings.
- Maintained the structure of the settings, including sortBy, sortOrder, and selectedTags.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-03 17:12:45 +08:00
Innei
093266a1f3 feat: enhance GalleryThumbnail and PhotoViewer components with Thumbhash integration
- 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>
2025-07-02 16:04:55 +08:00
Innei
e4fde5ae74 feat: integrate PWA support and update manifest configuration
- 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>
2025-07-01 16:02:28 +08:00
Innei
6e84a1de2e chore: remove unused dependencies from package.json and pnpm-lock.yaml
- 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>
2025-06-29 23:13:24 +08:00
Innei
96400b1775 feat: support share to external via iframe
- 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>
2025-06-29 23:09:57 +08:00
Innei
5d523af3bc feat: enhance photo reactions and loading indicators
- 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>
2025-06-29 17:33:35 +08:00
Innei
27ea01fbf1 refactor: remove blurhash replace to thumbhash
- 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>
2025-06-29 15:46:46 +08:00
Innei
e2a3c55910 fix: try fix blurhash logic
- 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>
2025-06-29 15:14:45 +08:00
Innei
3f21435271 refactor: update ErrorElement and HistogramChart components for improved styling and functionality
- 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>
2025-06-29 11:28:23 +08:00
Innei
708f300433 feat: add blurhash generation and component correspondence documentation
- 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>
2025-06-28 23:08:21 +08:00
Innei
02d633c3fe refactor: enhance ActionGroup component for responsive design and drawer support
- 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>
2025-06-28 22:28:24 +08:00
Innei
1337069c74 refactor: simplify precheck script and remove pull-remote functionality
- 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>
2025-06-28 14:39:00 +08:00
Innei
a4eb754243 fix: clear long press timer in ProgressiveImage component
- 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>
2025-06-28 14:15:08 +08:00
Innei
4b87e19ff3 refactor: update splash screen design and animations
- 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>
2025-06-28 14:09:40 +08:00
Innei
8000a085d0 feat: integrate react-error-boundary for improved error handling, fixed #27
- 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>
2025-06-28 14:05:27 +08:00
Innei
5b512d60a7 feat: enhance Live Photo functionality and improve user experience
- 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>
2025-06-28 14:00:12 +08:00
Innei
6668425fba feat: add Vite plugins for enhanced functionality and localization support
- 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>
2025-06-27 16:58:12 +08:00
Innei
854ee1df8d fix: update FloatingActionButton styles and remove unused animation
- 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>
2025-06-27 16:07:07 +08:00
Innei
1aae171033 fix: update default fallback language to English in i18n configuration
- 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>
2025-06-27 02:02:59 +08:00
Innei
a550bf77ca fix: remove edge runtime export from SSR route files
- 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>
2025-06-27 01:56:34 +08:00
Innei
c8fa65e9c2 feat: implement analysis API and enhance reaction handling
- 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>
2025-06-27 01:51:43 +08:00
Innei
5bd5947ec2 feat: update database connection logic and enhance upsert functionality
- 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>
2025-06-27 01:19:08 +08:00
Innei
49ac494998 feat: init api
Signed-off-by: Innei <tukon479@gmail.com>
2025-06-27 00:43:04 +08:00
Innei
91897b6032 feat: enhance SSR and web applications with manifest injection and configuration updates
- 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>
2025-06-26 22:03:04 +08:00
Innei
9e0b584ca3 fix: hide EXIF grid for short photo items fixed #21
- 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>
2025-06-26 21:17:53 +08:00
Innei
ebd6b391e9 refactor: update EXIF information display in PhotoMasonryItem component
- 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>
2025-06-26 21:10:15 +08:00
Innei
c8315c29b0 refactor: update WebGL image viewer and improve loading state handling
- 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>
2025-06-26 21:08:16 +08:00
Innei
b6c6fbeb33 refactor: simplify ManifestStats component by removing views calculation
- 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>
2025-06-26 00:48:56 +08:00
Innei
ae4f15e3ea refactor: update photo data handling and types
- 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>
2025-06-26 00:48:04 +08:00