- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- Changed the artifact path from './packages/docs/dist' to './apps/docs/dist' to reflect the correct directory structure for documentation deployment.
Signed-off-by: Innei <tukon479@gmail.com>
feat: Enhance PhotoAssetService with findPhotosByIds method for batch retrieval of photo manifests
refactor: Move PhotoAsset types to a dedicated file for better organization
feat: Introduce StaticAssetController and StaticShareController for handling static asset requests
feat: Create StaticShareService to manage share page functionality and dynamic data injection
refactor: Consolidate static web controller logic into StaticBaseController for code reuse
fix: Update module imports to reflect new directory structure for AppStateModule
chore: Update pnpm lockfile to include new dependencies
Signed-off-by: Innei <tukon479@gmail.com>
- Updated `babel-plugin-react-compiler` and `react-compiler-runtime` to version 1.0.0 across multiple package.json files.
- Refactored `PhotoPage` and related components to utilize new tab structure for better organization.
- Introduced `PhotoPageScaffold` and `PhotoPageTabs` for improved layout and navigation within the photo management section.
- Enhanced `PhotoSyncTab`, `PhotoStorageTab`, and `PhotoUsageTab` components for better functionality and user experience.
- Adjusted imports and component structure for clarity and maintainability.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced billing plans with associated quotas for tenants, including maximum upload sizes and processing limits.
- Added new endpoints and services for managing tenant billing plans and tracking usage events.
- Enhanced the dashboard with components for viewing and updating tenant plans, including a new tenant management interface.
- Implemented database migrations to support billing-related data structures and relationships.
- Updated documentation to reflect the new billing plan features and usage tracking capabilities.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed default site name and URL to reflect new branding.
- Updated author information in the site configuration, including name, URL, and avatar.
- Removed author-related settings from the configuration schema to streamline the setup.
- Enhanced the SiteSettingService to resolve author details dynamically based on tenant context.
- Added a new endpoint to retrieve the status of photo synchronization, improving user feedback on sync operations.
Signed-off-by: Innei <tukon479@gmail.com>