- 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>
- Imported `toast` from 'sonner' to enable toast notifications.
- Updated styles for the toast icon to improve visual consistency and responsiveness.
Signed-off-by: Innei <tukon479@gmail.com>
- 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>
- Removed excessive logging statements related to request parameters, state decoding, tenant resolution, and redirection in the OAuth callback logic.
- Streamlined the code for improved readability while maintaining essential error handling and functionality.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a check to ensure AUTH_GATEWAY_STATE_SECRET or CONFIG_ENCRYPTION_KEY is provided, throwing an error if neither is set.
- Updated the configuration parsing to use a resolved state secret variable for clarity and consistency.
Signed-off-by: Innei <tukon479@gmail.com>
- Added detailed logging for OAuth callback processing, including request parameters and state decoding results.
- Implemented error logging for missing provider parameters and invalid state scenarios.
- Improved tenant slug resolution and target host logging to aid in debugging and monitoring.
Signed-off-by: Innei <tukon479@gmail.com>
- Eliminated the explicitHost parameter from the TargetResolutionInput interface and related functions.
- Updated the OAuth callback processing to streamline target host resolution, relying solely on tenant slug.
- Adjusted the GatewayStatePayload to remove targetHost, enhancing clarity in state management.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed the ALLOW_CUSTOM_HOST configuration option from the gateway settings.
- Simplified tenant slug and explicit host handling in the OAuth callback logic, prioritizing state-derived values.
- Updated target host resolution to eliminate dependency on the allowCustomHost setting.
Signed-off-by: Innei <tukon479@gmail.com>
- 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>
- Renamed variable for clarity and added sanitization for tenant slug derived from state.
- Updated target host resolution to prioritize tenant slug from state if not explicitly provided.
Signed-off-by: Innei <tukon479@gmail.com>
- 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>
- Included @afilmory/utils as a workspace dependency in the oauth-gateway package.json.
- Updated pnpm-lock.yaml to reflect the addition of @afilmory/utils with the appropriate workspace link.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced encoding and decoding of OAuth state to include tenant metadata, allowing the gateway to route callbacks without hard-coded tenant slugs.
- Updated the AuthController to handle social account linking and sign-in with compatibility for legacy paths.
- Refactored redirect URI construction to simplify tenant slug handling.
- Enhanced documentation to reflect changes in the OAuth flow and state management.
Signed-off-by: Innei <tukon479@gmail.com>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- Added imports for new database entities including authAccounts, billingUsageEvents, comments, and tenantDomains.
- Implemented deletion operations for comments and commentReactions in the DataManagementService to improve tenant data management.
Signed-off-by: Innei <tukon479@gmail.com>
- Created a new placeholder file in the patches directory to maintain structure and indicate future patch additions.
Signed-off-by: Innei <tukon479@gmail.com>
- Implemented a new method to inject favicon links into the document head, ensuring proper favicon support for the static web service.
- Updated existing methods to call this new functionality, enhancing the overall user experience with appropriate icons.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed the import path for AfilmoryManifest from '@afilmory/builder/types/manifest' to '@afilmory/builder/types/manifest.js' to ensure compatibility with the updated module structure.
Signed-off-by: Innei <tukon479@gmail.com>
- 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>
- 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>
- 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>
- Removed the custom domain fallback logic from the gallery URL builder.
- Consolidated the display URL logic to use the gallery URL builder directly.
- Added theme-specific styles for accent and link colors in light and dark modes to enhance visual consistency.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a new endpoint to render a homepage Open Graph image with site statistics and featured photos.
- Introduced a new template for the homepage Open Graph image, including site name, description, author avatar, and featured photos.
- Updated the Open Graph service to handle rendering of the new homepage image.
- Implemented emoji loading functionality for enhanced visual representation in Open Graph images.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a GitHub link in the footer for easy access to the project repository.
- Simplified the NocturneButton component by removing unnecessary elements and adjusting styles for improved layout.
- Updated localization files to include the new GitHub string in both English and Chinese.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a new section for getting started with the official SaaS, highlighting its benefits and ease of use.
- Expanded the self-hosting section to clarify requirements and provide a tip for users to consider the SaaS option.
- Included links to official documentation for further guidance on setup and advanced usage.
- Updated related links to reflect the official SaaS and documentation resources.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the top padding in the NormalContainer component to enhance spacing and visual consistency across different screen sizes.
- Ensured that the layout remains responsive and aligns with the overall design standards of the landing page.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated documentation to include Aliyun OSS and Tencent COS as storage options.
- Introduced configuration examples for both providers in the storage providers documentation.
- Enhanced the storage provider registration to accommodate new providers.
- Updated the storage configuration interfaces to support OSS and COS.
- Modified the S3 client and provider implementations to handle requests for OSS and COS.
- Added environment variable configurations for OSS and COS.
- Implemented necessary changes in the UI schema and routes to reflect the new providers.
- Updated localization files for new storage provider types.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed the TenantModule import from the FeaturedGalleriesModule, streamlining the module structure.
- Refactored the FeaturedGalleriesService to eliminate the TenantService dependency, enhancing service independence.
- Updated the logic in listFeaturedGalleries to calculate quality scores for tenants directly from the database, improving performance and clarity.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed unnecessary background color from the landing page container for a cleaner look.
- Simplified the NocturneHero section by eliminating redundant styles, enhancing responsiveness.
- Updated global styles to apply background color alongside text color for improved readability.
Signed-off-by: Innei <tukon479@gmail.com>
- Added the react-responsive-masonry package to enhance the layout of the GalleryShowcase component, allowing for a responsive grid display of galleries.
- Updated the GalleryShowcase component to utilize Masonry and ResponsiveMasonry for better visual organization of gallery items.
- Included new dependencies in package.json and pnpm-lock.yaml for react-responsive-masonry and its types.
Signed-off-by: Innei <tukon479@gmail.com>
- Added photo count and tags display to the GalleryShowcase component, improving the information presented to users.
- Updated the FeaturedGalleriesService to fetch photo counts and popular tags for each tenant, ensuring accurate data representation.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new Gallery Showcase component to display featured galleries on the landing page.
- Updated localization files to include new strings for the Gallery Showcase.
- Enhanced the landing page by integrating the Gallery Showcase component alongside existing elements.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed unnecessary parameters from the domain verification instructions in the CustomDomainCard component.
- Simplified the hostname normalization function by eliminating checks for server-side rendering.
- Updated localization strings to remove references to TXT token requirements for domain binding, streamlining the user experience.
Signed-off-by: Innei <tukon479@gmail.com>