* feat: optimize Stripe subscription management UI
- Replace static billing portal link with dynamic Stripe Billing Portal Session API
- Allow canceled subscriptions to display status and expiration date
- Show subscription status indicator with color coding (green/blue/yellow)
- Move status info above manage button for better layout
- Update UI for both desktop and mobile platforms
- Add translations for subscription status messages
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* fix: use authenticated API client for billing portal on mobile
Replace raw fetch with followClient.request() to properly inject
authentication cookie and required headers on React Native.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
- Wrapped SortByUnreadFeedList in memo for performance optimization.
- Utilized useCallback for the sortedList computation to prevent unnecessary re-renders.
- Enhanced the handling of onboarding and regular categories by ensuring a copy of ids is used.
- Minor adjustments in SubscriptionList and hooks for consistency and clarity.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced new atom hooks for managing discover search data, improving state handling in UnifiedDiscoverForm.
- Replaced direct atom usage with custom hooks for better abstraction and maintainability.
- Updated related components to utilize the new state management approach, enhancing overall code clarity.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a responsive select component to filter feeds by type (All, RSSHub).
- Implemented logic to count and display RSSHub feeds.
- Updated feed selection and sorting functionality to respect the selected filter.
- Enhanced localization files to include new filter labels in English, Japanese, Simplified Chinese, and Traditional Chinese.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced DiscoveryContent and UnifiedDiscoverForm components for better organization and functionality in the discover module.
- Updated existing components to remove unnecessary max-width constraints for improved responsiveness.
- Enhanced the Trending component with a view selector and improved layout handling.
- Updated localization files to include new tool descriptions and tips for user guidance.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced attribution tracking by capturing UTM parameters from the URL.
- Implemented functions to save and retrieve attribution data from local storage.
- Enhanced analytics initialization to include attribution data as user properties.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated layout and styling for the LoginModalContent component to improve visual hierarchy and user experience.
- Added new benefits and subtitles to the login interface, enhancing clarity for users.
- Introduced a quick start hint for new users and a demo view button for better engagement.
- Updated localization files for English, Japanese, Simplified Chinese, and Traditional Chinese to reflect new content.
Signed-off-by: Innei <tukon479@gmail.com>
- Added MobileTimelineLayout component to handle mobile-specific rendering.
- Integrated useMobile hook for responsive behavior in AIEnhancedTimelineLayout.
- Updated layout logic to conditionally render components based on mobile view.
- Enhanced dropdown and context menu styles for better visual feedback.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a renderValue function to the LanguageSelector for improved display of selected language names.
- Updated layout component to support responsive behavior based on viewport width.
- Refactored setting sync to utilize useMobile hook for better mobile detection.
- Enhanced withResponsiveComponent to accept a breakpoint function for more flexible responsive layouts.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed conditional class application for feedIcon in EntryListHeader to simplify styling.
- Added functionality to the FeedItem context menu to allow users to switch views, integrating a new menu item for changing to another view based on the current subscription.
Signed-off-by: Innei <tukon479@gmail.com>