Commit Graph

264 Commits

Author SHA1 Message Date
Chrys
d25fd9dae4 feat(viewer): new vertical gesture and animation on mobile (#240) 2026-04-18 22:20:11 +08:00
Innei
43ff51ea1d fix: restore preview close animation by deferring navigation until exit transition completes (#237)
Co-authored-by: Claude <noreply@anthropic.com>
2026-03-29 21:05:34 +08:00
mgt
8788eaf512 fix: exclude html from service worker precache to prevent stale navigation
When index.html was included in the precache manifest, the NavigationRoute
served a cached (stale) version for all navigation requests. This caused
newly added photos to be invisible until the new service worker activated,
because the old index.html contained an outdated photo manifest.

By removing html from globPatterns, navigation requests fall through to
the network, ensuring users always get the latest index.html.

Fixes #90
2026-03-24 22:08:09 +08:00
specialhua
12fc871f2c feat: Add configurable ICP beian footer for China mainland (#228) 2026-03-16 17:56:31 +08:00
woolen-sheep
8adf2e47e8 fix: vite missing in apps/web (#232) 2026-03-15 21:35:36 +08:00
Chrys
b631f03ca7 refactor(viewer): viewer state management and URL synchronization (#224) 2026-02-23 23:38:17 +08:00
Innei
2d9c80bd75 chore(deps): update various dependencies across the project
- Bumped versions for several packages including dotenv (17.3.1), es-toolkit (1.44.0), eslint (10.0.0), prettier (3.8.1), and others.
- Updated React and related packages to version 19.2.4.
- Adjusted motion package to version 12.34.0 across multiple applications.
- Enhanced compatibility by updating @types/node to 25.2.3 and other related packages.

Signed-off-by: Innei <tukon479@gmail.com>
2026-02-13 23:07:25 +08:00
Innei
ba0643e11f refactor(vite): comment out ReactCompilerConfig and related babel plugin configuration
- Commented out the ReactCompilerConfig object and its usage in the babel plugin configuration for the React plugin in Vite.
- This change simplifies the configuration and prepares for potential future adjustments.

Signed-off-by: Innei <tukon479@gmail.com>
2026-02-13 22:46:53 +08:00
Innei
cb36da6400 chore: lock motion/motion-dom, unify @types/react, mark be packages private
- Add motion 12.34.0 and pnpm overrides for motion/motion-dom
- Add @types/react and @types/react-dom to catalog (19.2.14/19.2.3)
- Use catalog for motion and @types/react* across apps and packages
- Add private: true to be/apps/core and be/packages/*
- Add description/license to dashboard, web, ssr; fix root unique-deps

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 00:05:41 +08:00
Chrys
cd95b86de4 fix(feed): incorrect photo pathname in rss feed (#223) 2026-02-04 19:04:18 +08:00
Chrys
cd501adb02 feat(ui): implement reduced motion support (#222) 2026-02-04 19:02:16 +08:00
Innei
76b7d47acd refactor: enhance accessibility and optimize EXIF data handling across components
- Added aria-labels to buttons and icons for improved accessibility.
- Refactored EXIF data formatting to utilize a shared function, reducing code duplication.
- Updated various components to use memoization for performance optimization.
- Adjusted styles for consistency in hover effects and transitions.

Signed-off-by: Innei <tukon479@gmail.com>
2026-01-18 15:46:02 +08:00
Innei
8a20fef4a9 refactor: reorganize Vite configuration for route generation and static web build plugins
- Renamed and reordered plugins for clarity, separating route generation from static web build plugins.
- Integrated route generation plugins into the Vite configuration to streamline the build process.

Signed-off-by: Innei <tukon479@gmail.com>
2026-01-11 22:49:40 +08:00
Innei
08b045e176 chore: update package dependencies and configurations across the monorepo 2026-01-10 23:35:37 +08:00
Innei
7e216d90d7 feat: introduce @afilmory/typing package and update imports across the codebase
- Added a new package `@afilmory/typing` to centralize type definitions.
- Updated various files to import types from `@afilmory/typing` instead of individual modules.
- Adjusted package dependencies in `package.json` files for affected packages.
- Modified `pnpm-lock.yaml` to include the new package and its dependencies.

Signed-off-by: Innei <tukon479@gmail.com>
2026-01-10 23:31:41 +08:00
Innei
e795a998e4 feat: add AppSkeleton component and integrate suspense for loading state
- Introduced a new AppSkeleton component to provide a loading placeholder with a waterfall effect.
- Updated main.tsx to wrap the RouterProvider in a Suspense component, displaying AppSkeleton during loading.
- Modified router.tsx to include AppSkeleton as a hydrate fallback element for improved user experience.

Signed-off-by: Innei <tukon479@gmail.com>
2026-01-07 00:01:36 +08:00
Innei
b0d1177427 chore: update vite-plugin-route-builder to version 0.5.0-alpha.1 and adjust related configurations
- Updated the vite-plugin-route-builder dependency in package.json files for both the web and dashboard applications.
- Modified the pnpm-lock.yaml to reflect the new version.
- Updated the router configuration to utilize generated routes from the new version.
- Added a new layout component for the main page in the web application.
- Adjusted import statements and added a new entry to .gitignore for generated routes.

Signed-off-by: Innei <tukon479@gmail.com>
2026-01-06 23:52:08 +08:00
Whitewater
4a840097e7 fix: correct gutter value type in Masonry component (#205) 2026-01-05 13:32:14 +08:00
Chrys
cbbdfc3087 fix: exit animation target on ListView (#210) 2026-01-04 16:33:35 +08:00
Innei
17216b7f1f chore: update package dependencies and package manager version
- Upgraded package manager from pnpm@10.24.0 to pnpm@10.26.2 across multiple applications.
- Updated various package dependencies including lucide-react, eslint-plugin-react-refresh, typescript-eslint, and others to their latest versions.
- Adjusted @types/node version from ^24.10.1 to ^25.0.3 in several packages for compatibility with the latest Node.js features.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-29 21:25:53 +08:00
Innei
9a99dd8e07 chore: update deps 2025-12-16 20:57:50 +08:00
Innei
62e98a9599 feat: enhance locales-json plugin to filter non-locales files
- Added a check to return null for files that do not include 'locales' in their ID, improving the plugin's efficiency by preventing unnecessary transformations.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-06 00:46:08 +08:00
Wenzhuo Liu
a5fc700608 fix: pass projection mode directly (#193) 2025-12-06 00:42:55 +08:00
Innei
d0c420ba93 refactor: update Reaction component and integrate ReactionRail into PhotoViewer
- Refactored the Reaction component to improve structure and styling, renaming it to ReactionRail.
- Simplified the reaction handling logic and enhanced the UI for displaying reactions.
- Integrated ReactionRail into the PhotoViewer component to allow users to react to photos directly.
- Removed unused imports and optimized the code for better performance.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-05 19:17:38 +08:00
Innei
a4927c5240 feat: add comment count API and integrate with InspectorPanel
- Implemented a new API endpoint to count comments for a specific photo.
- Updated the InspectorPanel to fetch and display the comment count using React Query.
- Enhanced the UI to indicate the presence of comments with visual cues.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-05 18:02:42 +08:00
Innei
b8f1a26ce2 chore: update package dependencies across applications
- Upgraded various package dependencies including:
  - `prettier` to version 3.7.4
  - `tsx` to version 4.21.0
  - `vite` to version 7.2.6
  - `react` and `react-dom` to version 19.2.1
  - `drizzle-orm` to version 0.45.0
  - `jotai` to version 2.15.2
  - `motion` to version 12.23.25
  - Updated several other packages to their latest versions for improved performance and compatibility.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-05 00:55:30 +08:00
Innei
9fb7f5525f feat: add website field to CommentUser and update comment components
- Introduced an optional `website` field in the `CommentUser` interface to allow users to provide their website links.
- Updated `CommentCard` and `CommentHeader` components to utilize the new `website` field, enabling clickable links for user websites in the comment header.
- Refactored user data fetching in `CommentService` to include the website information when retrieving user profiles.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-03 21:16:35 +08:00
Innei
ced9e747aa feat: implement email notification system for comments
- Added MailModule to handle email notifications for comment events.
- Introduced CommentCreatedEvent to encapsulate comment creation details.
- Implemented CommentNotificationListener to send notifications to relevant users when a comment is created.
- Integrated Resend service for sending emails, with templates for comment notifications.
- Updated various modules to support the new email notification feature.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-03 20:57:26 +08:00
Innei
3fe6ad564c chore: update package dependencies and package manager version
- Upgraded pnpm to version 10.24.0 across multiple applications.
- Updated various package dependencies including:
  - `@shikijs/rehype` to version 3.19.0
  - `shiki` to version 3.19.0
  - `tsx` to version 4.21.0
  - `typescript-eslint` to version 8.48.1
  - `maplibre-gl` to version 5.14.0
  - `@hono/node-server` to version 1.19.6
  - `jotai` to version 2.15.2
  - `motion` to version 12.23.25
- Ensured consistency in package versions across applications.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-03 18:59:38 +08:00
Vincent He
08d42521f3 fix: Update photo detail page link path (#181) 2025-12-01 23:11:33 +08:00
Innei
7b02aeaba6 feat: enhance InspectorPanel and PhotoViewer with inspector visibility controls
- Updated InspectorPanel to include a close button for collapsing the panel.
- Refactored PhotoViewer to manage inspector visibility based on device type, replacing the previous EXIF panel state.
- Introduced conditional rendering for the inspector button in PhotoViewer, improving user experience on mobile and desktop.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-30 23:34:28 +08:00
Innei
9618a68b9b refactor: remove thumbnail padding constants for cleaner calculations
- Eliminated `THUMBNAIL_PADDING` constants to simplify thumbnail height calculations in the viewer.
- Updated `computeViewerImageFrame` to directly use `THUMBNAIL_SIZE` for determining thumbnail height based on device type.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-30 23:23:52 +08:00
Innei
5763ec8dba feat: enhance gallery page header with responsive social media links and view mode options
- Updated `PageHeaderLeft` to conditionally display social media links on larger screens.
- Introduced `MoreActionMenu` in `PageHeaderRight` for mobile users, allowing access to view mode settings and social links.
- Modified `ViewModeSegment` to ensure consistent display across different screen sizes.
- Enhanced `DropdownMenuItem` to support child components for better flexibility in dropdown menus.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-30 23:12:36 +08:00
Innei
b6b7941ea2 feat: implement ShareModal and related components for enhanced photo sharing
- Introduced `ShareModal` to replace the deprecated `SharePanel`, providing a more streamlined sharing experience.
- Added `CopyButton` and `ShareActionButton` components for improved user interaction when sharing photos.
- Updated `PhotoViewer` to utilize the new `ShareModal` for sharing functionality.
- Removed `SharePanel` and updated localization files to include new sharing strings in multiple languages.
- Enhanced the handling of share links and download options within the modal.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-30 22:50:33 +08:00
Innei
b9d06fe6f2 feat: implement active filters feature in gallery module
- Added `useHasActiveFilters` hook to determine if any filters are active based on selected tags, cameras, lenses, and ratings.
- Introduced `ActiveFiltersHero` component to display active filters and related actions, including options to edit or clear filters.
- Created `FilterChip`, `FilterChips`, and `FilterStats` components for managing and displaying individual filter selections.
- Updated `PhotosRoot` to integrate the new active filters UI, enhancing user experience by providing immediate feedback on applied filters.
- Added localization strings for active filters in multiple languages.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-30 20:38:40 +08:00
Innei
f81b3d0ae9 feat: implement sign-out functionality in auth API and user menu
- Added a signOut method to the auth API for handling user sign-out requests.
- Integrated sign-out functionality in the UserMenuButton component, updating session state and invalidating queries upon successful sign-out.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-30 18:10:37 +08:00
Innei
ac106b87c6 fix: update PageHeaderRight styling for user session state
- Modified the background styling of the user authentication section in PageHeaderRight to conditionally apply rounded styles based on the presence of a session user.
- Enhanced visual consistency by ensuring the component adapts its appearance according to user authentication status.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-30 14:17:55 +08:00
Innei
2a7336cd6b feat: enhance PageHeader and PageHeaderRight components with improved styling and layout
- Added LinearBlur effect to the PageHeader for a refined visual appearance.
- Updated PageHeaderRight to use background styles instead of borders for a modern look.
- Adjusted ViewModeSegment styling to maintain consistency across components.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-30 13:24:20 +08:00
Innei
a9703f34dc refactor: remove RSS support from social configuration
- Eliminated the RSS field from social settings in configuration files and UI schemas.
- Updated related documentation and localization files to reflect the removal of RSS support.
- Adjusted components to ensure compatibility with the updated social configuration.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-30 01:27:48 +08:00
Innei
62fd908d35 feat: enhance GalleryThumbnail with virtualized rendering and hover card support
- Integrated virtualized rendering using @tanstack/react-virtual for improved performance in the GalleryThumbnail component.
- Added HoverCard functionality for displaying additional photo information on hover.
- Removed unused thumbnail gap and padding size constants to streamline the code.
- Updated scroll behavior to utilize virtual item measurements for accurate thumbnail positioning.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-30 01:11:47 +08:00
Innei
1b5d782a51 feat: update CommentsContent and SkeletonList components for improved loading states
- Removed the comments header from CommentsContent for a cleaner layout.
- Enhanced SkeletonList to provide a more detailed loading skeleton structure, including separate sections for comment header, content, and action bar.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-30 00:29:54 +08:00
Innei
e71548b320 feat: enhance gallery layout and functionality
- Added support for virtualized rendering in ListView using @tanstack/react-virtual for improved performance with large photo sets.
- Integrated new hooks for mobile responsiveness and context management in ListView and PhotoCard components.
- Updated PageHeader and ViewModeSegment for better layout consistency and user experience.
- Increased upload limits in backend configuration to accommodate larger files and requests.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-30 00:23:14 +08:00
Innei
26100b26cd feat: enhance PageHeaderCenter with animation and improve Input component
- Added animation effects to the PageHeaderCenter component using AnimatePresence and motion for a smoother user experience.
- Updated the Input component to support input composition handling, improving text input behavior during composition events.
- Adjusted styling in AutoSelect component for better layout consistency.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-29 23:41:15 +08:00
Innei
447caaba6a feat: implement gallery view modes and enhance layout
- Added ListView and MasonryView components for displaying photos in different layouts.
- Introduced a new GalleryViewMode type to manage view settings.
- Updated PhotosRoot to conditionally render ListView or MasonryView based on the selected view mode.
- Created a PageHeader component with a ViewModeSegment for toggling between view modes.
- Removed the deprecated MasonryRoot component and adjusted imports accordingly.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-29 18:13:25 +08:00
Innei
8cda0c328e fix: update EXIF GPS altitude reference handling
- Changed the condition for checking GPS altitude reference from string comparison to numeric values for 'Above Sea Level' and 'Below Sea Level'.
- Updated related logic in the EXIF data formatting and migration scripts to ensure consistency with the new numeric representation.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-27 01:07:45 +08:00
Innei
9b929a1694 chore: update package dependencies and versions
- Upgraded various dependencies including es-toolkit, lint-staged, vite, and zod to their latest versions.
- Updated tailwind-variants and tailwindcss-safe-area to newer versions.
- Adjusted types for React and other related packages to ensure compatibility.
- Removed obsolete patch for @creem_io/better-auth.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-27 00:57:14 +08:00
Innei
41ad6d73b3 feat: update SignInPanel to use dynamic icons for login providers
- Replaced static icon rendering with a new LoginPlatfoIcon component that dynamically renders icons based on the provider.
- Added SVG support for Google login icon and maintained the GitHub icon.
- Cleaned up CSS comments related to icon sources.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-27 00:48:01 +08:00
Innei
cb40fe74d0 feat: implement comments feature (#171)
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-27 00:37:52 +08:00
Innei
3e96106a16 chore: sign s3 (#170)
Signed-off-by: Innei <tukon479@gmail.com>
2025-11-26 15:23:41 +08:00
Vincent He
7fbb82c533 perf(web): optimize thumbnail loading with virtual scrolling and lazy… (#167) 2025-11-25 16:17:12 +08:00