Commit Graph

547 Commits

Author SHA1 Message Date
woolen-sheep
e061ba159c fix: images are dropped when more than 1000 files on S3 (#208) 2026-01-05 13:31:32 +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
Whitewater
7be1e5e829 chore: add type-check script and integrate type checking in build workflow (#201) 2025-12-23 14:32:33 +08:00
Innei
9a99dd8e07 chore: update deps 2025-12-16 20:57:50 +08:00
Innei
0da12eb301 feat: implement drag-and-drop file upload feature in photo library
- Added PhotoLibraryDropUpload component to handle file drag-and-drop uploads.
- Integrated file type validation to support images and specific video formats.
- Implemented user feedback through modals and toasts for unsupported file types.
- Updated localization files to include new strings for drag-and-drop functionality in English and Chinese.
- Modified PhotoLibraryTab to include the new upload component.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-14 15:37:30 +08:00
Innei
9229ad63dd feat: enhance billing error handling and upgrade prompts
- Updated error codes in the error-codes enum to better reflect billing scenarios, introducing BILLING_PLAN_QUOTA_EXCEEDED and BILLING_STORAGE_QUOTA_EXCEEDED.
- Modified the PhotoAssetService and BillingPlanService to throw specific BizExceptions for storage and plan quota exceedances.
- Implemented a new BillingUpgradeModal to prompt users for upgrades based on error categories.
- Enhanced error handling in photo upload and sync actions to present upgrade prompts when necessary.
- Updated localization files to include new strings for upgrade prompts in both English and Chinese.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-10 15:36:52 +08:00
Innei
883fd37e53 feat: implement storage tenant listing and query enhancements
- Added a new endpoint in SuperAdminTenantController to list tenants with storage plans and their usage statistics.
- Updated TenantRepository and TenantService to support filtering tenants by storage plan requirements.
- Introduced new API functions and hooks in the dashboard for fetching and managing storage tenant data.
- Modified TenantStoragePanel component to utilize the new storage tenant query.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-10 15:11:11 +08:00
Innei
d6b5cf1dda feat: add storage usage tracking and management features for tenants
- Implemented a new method in ManagedStorageService to retrieve usage totals for tenants, including total bytes and file counts.
- Enhanced SuperAdminTenantController to integrate storage usage data into tenant listings.
- Created TenantStoragePanel and TenantSubscriptionsPanel components for managing and displaying tenant storage information.
- Updated localization files to support new storage management features in both English and Chinese.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-10 14:41:43 +08:00
Innei
05ef8a8f4c fix: extend upload request timeout for larger batches and slower networks
- Increased the upload request timeout from 2 minutes to 10 minutes to accommodate larger file uploads and slower network conditions.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-09 21:28:36 +08:00
Innei
7d70361717 refactor: remove outdated documentation and update gallery showcase with last upload feature
- Deleted obsolete documentation files related to color system, discover modal architecture, and store-actions pattern.
- Updated the GalleryShowcase component to replace 'createdAt' with 'lastUpload' for better clarity on photo upload timing.
- Enhanced localization files to include a new key for 'lastUpload' in both English and Chinese.
- Modified the FeaturedGalleriesService to fetch and include the last updated timestamp for galleries.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-06 22:20:03 +08:00
Innei
c9514607b7 fix: update billing plan description and enhance plan card functionality
- Simplified the description of the 'Pro' billing plan in the constants file.
- Added logic to the PlanCard component to conditionally display checkout, downgrade, and coming soon buttons based on the user's plan and account status.
- Improved the handlePortal function to account for the new downgrade button logic.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-06 01:44:47 +08:00
Innei
f2461f61c6 refactor: improve header and user menu components with responsive plan badge
- Updated the Header component to conditionally render the PlanBadge for larger screens.
- Enhanced the UserMenu component to display a loading state for the plan badge on mobile and link to the plan page when available.
- Introduced new props in UserMenu for better plan management and localization support.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-06 01:06:18 +08:00
Innei
7f9dd316f7 feat: enhance registration wizard with localization and improved state management
- Integrated i18next for localization across registration wizard components, including headers, footers, and steps.
- Refactored registration steps to utilize a custom hook for managing localized step titles and descriptions.
- Updated various components to improve user experience, including dynamic button labels and error messages.
- Adjusted initial form values to ensure terms acceptance is set to true by default.
- Enhanced the workspace step to derive the tenant name from the slug automatically.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-06 01:03: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
fbaf81a62f chore: update Dockerfile and enhance loading skeleton in StoragePlanEditor
- Added build dependencies for native Node.js modules in the Dockerfile, including python3, make, g++, and postgresql-dev.
- Improved the loading skeleton UI in the StoragePlanEditor component for better visual representation during data fetching.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-06 00:42:10 +08:00
Innei
b636c8cc10 feat: add storage plan management to tenant administration
- Introduced functionality to update storage plans for tenants in the SuperAdmin interface.
- Enhanced the SuperAdminTenantController and related services to handle storage plan updates.
- Updated frontend components to include a storage plan selector in the tenant management UI.
- Added necessary DTOs and types for storage plan handling.
- Improved localization for storage plan features in both English and Chinese.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-06 00:30:34 +08:00
Innei
8c9e8a9575 feat: enhance tenant management with search functionality and DTO updates
- Introduced search capability in tenant listing and management components.
- Updated SuperAdminTenantController to utilize new DTOs for tenant ID and query parameters.
- Enhanced tenant repository and service to support search filtering.
- Modified frontend components to include a search input for better tenant management experience.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-06 00:20:00 +08:00
Innei
b8eeb95c4f fix: root account creation
- Introduced an explicit tenant ID parameter in the AuthProvider to allow for tenant-specific authentication.
- Updated the createAuthForEndpoint method to utilize the explicit tenant ID when provided.
- Added a new method, getAuthForTenant, to facilitate fetching authentication for a specific tenant.
- Updated related services to use the new tenant-specific authentication logic.
- Added pg-native as a dependency and updated pnpm-lock.yaml accordingly.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-05 20:32:47 +08:00
Innei
9b1a1b7bf6 feat: make Creem integration optional and error-prone if misconfigured 2025-12-05 20:13:52 +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
a71025a65c refactor: enhance ActivitySkeleton and StatSkeleton components for improved styling and responsiveness
- Updated the layout and styling of the ActivitySkeleton component to improve visual consistency and responsiveness.
- Added additional placeholder elements in ActivitySkeleton for better loading representation.
- Adjusted padding and dimensions in StatSkeleton for a more polished appearance.
- Ensured all skeleton elements have consistent animation effects for a smoother user experience.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-05 17:14:02 +08:00
Copilot
62ec7be029 Fix scrollbar issues in photo upload modal dialog (#189)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lawvs <18554747+lawvs@users.noreply.github.com>
2025-12-05 16:40:12 +08:00
Innei
5984ca407e chore: update Dockerfile and package dependencies for pg-native support
- Added build dependencies for native Node.js modules in the Dockerfile, including python3, make, g++, and postgresql-dev.
- Installed postgresql-libs and removed build dependencies after installation to reduce image size.
- Updated pnpm-lock.yaml to include pg-native version 3.5.2 and adjusted related package versions accordingly.
- Modified package.json to add pg-native as a dependency.
- Updated vite.config.ts to include pg-native in the external dependencies list.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-05 16:39:27 +08:00
Innei
51df233429 chore: update package dependencies and improve documentation
- Updated `vite` to the beta version across multiple applications for enhanced features and performance.
- Removed deprecated dependencies such as `@clack/prompts`, `consola`, and `opentype.js` from `devDependencies`.
- Added new storage provider documentation in `routes.json` and updated last modified dates for existing entries.
- Refactored route imports in `routes.ts` to streamline the structure and improve readability.
- Enhanced the Table of Contents (TOC) data structure for better organization and accessibility.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-05 15:59:18 +08:00
MaxtuneLee
f1738ae749 docs: update readme image 2025-12-05 15:30:58 +08:00
Innei
b42bfbc520 feat: implement tenant suspension handling and deletion functionality
- Added a new tenant suspension page and related components to inform users when their tenant is suspended due to policy violations.
- Implemented deletion functionality for tenants in the SuperAdminTenantManager, allowing super admins to permanently delete tenant accounts.
- Updated localization files to include new strings for tenant suspension and deletion prompts.
- Enhanced the DataManagementService to handle tenant deletion with metadata checks.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-05 15:28:21 +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
b28b03c40b refactor: replace lazy loading feature with domMax in LazyMotion components
- Removed the framer-lazy-feature module and updated LazyMotion components in both landing and dashboard providers to use domMax directly.
- This change simplifies the feature loading process and improves performance by eliminating unnecessary imports.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-05 00:41:16 +08:00
Innei
20da96018d chore: update docker build
Signed-off-by: Innei <tukon479@gmail.com>
2025-12-05 00:35:32 +08:00
Innei
84128e8668 chore: lazy import and saas build base url
Signed-off-by: Innei <tukon479@gmail.com>
2025-12-05 00:34:40 +08:00
Innei
1507b695c2 chore: cleanup auth code
Signed-off-by: Innei <tukon479@gmail.com>
2025-12-04 21:15:20 +08:00
Innei
ed4fcada7d refactor: simplify authentication instance creation in AuthProvider
- Removed unnecessary cookie prefix handling and streamlined the instance creation process in the AuthProvider class.
- Updated the SuperAdminTenantManager component by removing unused button properties and cleaning up the status badge rendering logic.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-04 16:17:58 +08:00
Innei
e8550cee42 feat: enhance tenant management with pagination and sorting options
- Updated the SuperAdminTenantManager component to support pagination and sorting of tenant data.
- Introduced new parameters for fetching tenants, including page, limit, status, sortBy, and sortDir.
- Enhanced the UI to allow users to filter tenants by status and sort by name or creation date.
- Updated localization files to include new strings for tenant filtering and pagination.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-04 15:54:47 +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
1aac293020 refactor: comment out domain navigation and its usage in settings page
- Removed the 'domain' tab from the SETTINGS_TABS array in SettingsNavigation.tsx for cleaner navigation.
- Commented out the usage of <SettingsNavigation active="domain" /> in the domain settings page to prevent rendering issues.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-03 19:02:01 +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
Bojin Li
885a1734e7 fix(ssr): serve SPA HTML for deep links instead of 404 (#183) 2025-12-03 18:27:06 +08:00
Vincent He
08d42521f3 fix: Update photo detail page link path (#181) 2025-12-01 23:11:33 +08:00
Zeno
aedaac2fee Fix import path for handler in dev.ts (#182) 2025-12-01 23:10:53 +08:00
Innei
4cef7cdf26 fix: update RESERVED_SLUGS to include 'demo' for tenant slug validation
- Added 'demo' to the list of reserved slugs in tenant.ts to prevent its use as a tenant identifier.
- This change ensures better management of tenant slugs and avoids potential conflicts with common terms.

Signed-off-by: Innei <tukon479@gmail.com>
2025-12-01 23:03:11 +08:00
Chrys
a4ed1ecbc2 feat: custom CDN for GitHub storage (#172) (#174)
Co-authored-by: Innei <tukon479@gmail.com>
2025-11-30 23:36:05 +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
d9e09b375b feat: enhance Sonner component with toast functionality
- 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>
2025-11-30 21:29:42 +08:00