* 🐛 fix(admin): prioritize follow-up tickets by updated time
* ✨ feat(dashboard): show node/user traffic ranks side-by-side
* 🐛 fix(user): show expire time & improve renewal dialog on mobile
- Fix type error for accessing response.data.message with proper type assertion
- Remove invalid 'loading' prop from Button component
- Add conditional text rendering for loading state
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add redemption code input component in dashboard
- Integrate redemption API endpoint
- Add i18n support for Chinese and English
- Display redemption section alongside subscriptions
- Complete internationalization for redemption records dialog
- Add i18n for table headers and unit time translations
- Optimize redemption form validation error messages with i18n
- Add 50003 error code handling for coupon plan incompatibility
- Fix TypeScript errors in redemption-related components
- Fix TypeScript errors in user announcement page
- Updated all service files to replace hardcoded API paths with `${import.meta.env.VITE_API_PREFIX}` for better configurability.
- Ensured consistency across user, common, and gateway services by applying the new API prefix format.
- Removed unnecessary comments and maintained ESLint disable directives where applicable.
- Changed output path for i18next configuration in admin and user apps to "public/assets/locales/{{language}}/{{namespace}}.json".
- Added new translation keys in English and Chinese for admin and user updates in tool.json files.
- Refactored SystemVersionCard component to utilize new service version checking and updating logic.
- Introduced basic service version checking and updating functions in the gateway service.
- Added typings for new API endpoints related to service version management.
- Updated Vite configuration to rewrite API paths.
- Added TypeScript error handling in various service files.
- Updated all user and common service endpoints to include '/api' prefix for consistency.
- Added new API types for querying IP location and withdrawal logs.
- Introduced commission withdrawal functionality in user service.
- Enhanced user service typings to include rules and withdrawal log structures.
- Added SVG icons for Alipay and WeChat Pay in the payment assets directory.
- Updated paths for Lottie animations in various components to use relative paths.
- Changed QR code image sources in payment-related components to point to the new asset paths.
- Adjusted i18n configuration to load translation files from the updated assets directory.