Commit Graph

1193 Commits

Author SHA1 Message Date
DIYgod 7ca97e0208
fix: types 2025-11-06 21:16:06 +08:00
DIYgod 68fb09eb03
chore: update dependencies (#4667)
* chore: update dependencies

* Implement code changes to enhance functionality and improve performance
2025-11-06 21:09:46 +08:00
Innei f6a8691e3a
fix(translation): update user role checks for translation prefetching
Refactored translation prefetching logic across multiple components to utilize the new isFreeRole function. This change ensures that users with Free roles do not trigger translation prefetching, optimizing performance and enhancing user experience. Updated relevant imports and conditions in EntryItemImpl, useEntryContent, and various EntryList components.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-05 21:41:56 +08:00
Innei 053f680dc0
fix(translation): implement user role-based translation prefetching
Enhanced translation prefetching logic across multiple components by incorporating user role checks. Users with the Free role will no longer trigger translation prefetching, optimizing performance and resource usage. Updated relevant hooks and components to utilize the new logic for improved user experience.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-05 01:24:34 +08:00
Innei e9553e40d0
feat(payment): implement upgrade prompt for AI summary and enhance error handling
Added functionality to suggest an upgrade when payment-related errors occur in the AI summary component. Introduced a new UpgradeRequiredDialog for user prompts and integrated it with existing error handling. Updated localization for upgrade messages in multiple languages. Refactored related components to improve clarity and maintainability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-05 01:06:36 +08:00
Innei fabe63621e
refactor(api): remove unused API fetch and activation modal components
Deleted the api-fetch module and the ActivationModalContent component, streamlining the codebase. Updated references to use the new UpgradePlanModalContent where necessary. Adjusted response interceptors in the api-client to remove unused router references and error handling logic.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-04 21:21:23 +08:00
Innei 6a49168181
feat(subscription): add SubscriptionScreen and update settings navigation
Introduced a new SubscriptionScreen for managing user subscriptions, replacing the previous PlanScreen references. Updated navigation links in SettingsList to reflect this change, ensuring proper routing. Enhanced localization files to include new subscription-related strings for multiple languages.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-04 20:45:58 +08:00
Innei 45b607d8fa
fix(header): adjust header and banner styles for modal presentation
Updated the header and user banner components to conditionally adjust styles based on modal presentation state. The header now accounts for modal visibility when setting padding, and the user banner adjusts its margin and padding accordingly to enhance layout consistency in modal views.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-03 22:42:31 +08:00
Stephen Zhou 53e3578af2
feat: new payment (#4629)
* feat: new payment

* update

* update

* update

* update

* feat: enhance plan feature formatting and update localization strings

* update

* update

* update

* update

* refactor: remove NeedActivationToast and related activation modal logic

* update

* feat(settings): guard paid settings

Centralized paid-level metadata in @follow/shared and exposed the SettingNamespace union.
Updated the builder helpers and every settings tab to pull paid badges from that shared map.
Hardened the atoms helper to block writes and surface default values when a user lacks the required role.
Added the necessary workspace dependencies for the atoms package.

* fix: types

* feat(rate-limit-notice): update error messaging and add upgrade prompt

* feat(settings): integrate review checks into settings components

* update

* fix(plan): correct priority calculation in setting page data

* feat(ai-summary): add upgrade suggestion for AI summary when plan is insufficient

* feat(settings): enhance PaidBadge component to conditionally render based on MAS review status

---------

Co-authored-by: DIYgod <i@diygod.me>
2025-10-31 11:42:57 +08:00
DIYgod 13cb874cac
fix: types 2025-10-23 11:41:17 +08:00
Innei c221cb3691
fix: remap prop `setting` -> `enabled`
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-23 01:41:41 +08:00
Innei c72c526664
chore: downgrade React and React-DOM to version 19.0.0 across all packages for compatibility
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-22 01:06:50 +08:00
DIYgod baacb1c672
fix: package inconsistent versions 2025-10-21 17:20:39 +08:00
DIYgod 8757e5a2ef
fix: prettier tailwindcss classname sorting 2025-10-21 16:49:19 +08:00
DIYgod 7507270b39
chore: update dependencies 2025-10-21 16:33:03 +08:00
Innei ef0af46e6f
fix: update text autospace classes in ListItem, EntryTitle, and ArticleLayout components
- Replaced `[text-autospace:auto]` with `autospace-normal` class in ListItem, EntryTitle, and ArticleLayout components to standardize text spacing.
- Added a new utility class `autospace-normal` in tailwind.css to ensure consistent text rendering across the application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-10-19 23:44:44 +08:00
Innei 9e28fcd738
fix: update text autospace in ArticleLayout and HTML components
- Added `[text-autospace:auto]` class to the `className` property in both ArticleLayout and HTML components to enhance text rendering and improve readability.
- This change ensures better handling of text spacing across different content types.

Signed-off-by: Innei <tukon479@gmail.com>
2025-10-19 20:33:28 +08:00
Stephen Zhou 35cd41e3fa
refactor: remove view--1 (#4548) 2025-10-15 21:51:40 +08:00
Stephen Zhou 8c9784202c
refactor: move checkLanguage to utils 2025-10-10 15:23:42 +08:00
Innei bcb781e30c
refactor(ai-chat): enhance AIChainOfThought and ToolInvocationComponent for improved reasoning handling
- Updated the `AIChainOfThought` component to support a new `ChainReasoningPart` type, allowing for better integration of tool and reasoning parts.
- Refactored the logic for determining when the current chain reasoning is finished, ensuring accurate state management.
- Enhanced the `AIMessageParts` component to utilize the new `ChainReasoningPart` type, improving the handling of message parts.
- Modified the `ToolInvocationComponent` to streamline the rendering of tool invocation details, improving UI consistency and clarity.

These changes aim to enhance the functionality and maintainability of the AI chat components, providing a more robust user experience.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-25 00:07:34 +08:00
Innei d0b148b101
refactor(mobile): update header height calculations for improved layout
- Refactored the `getDefaultHeaderHeight` function calls across multiple components to accept an object with properties for landscape orientation, modal presentation, and top inset. This change enhances the clarity and maintainability of the header height calculations.
- Updated components including `NavigationHeader`, `SafeNavigationScrollView`, `ProfileScreen`, and `Settings` to utilize the new function signature, ensuring consistent header height behavior across the mobile application.

These changes aim to improve the layout responsiveness and maintainability of the mobile app's header components.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-24 23:59:07 +08:00
Innei 822d6b0417
feat(mobile): integrate expo-glass-effect for enhanced blur effects
- Added the `expo-glass-effect` package to `package.json` to enable glass effect features.
- Updated `BlurEffect` and `ThemedBlurView` components to conditionally render a glass effect on iOS 26 devices.
- Introduced `GlassPlayerTabBar` component for improved tab bar aesthetics and functionality.
- Enhanced `PlayerAction` component to utilize the new glass effect in its UI.

These changes aim to improve the visual experience of the mobile application by incorporating modern UI effects.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-24 23:53:37 +08:00
Innei 36a86d48a7
fix(ios26): safe insets for tabbar
- Imported the `PlayerTabBar` component into `ReactNativeTab.ios.tsx`, enhancing the tab bar functionality for the mobile application.
- This integration aims to improve the user experience by providing additional navigation options within the tab bar.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-24 22:57:50 +08:00
Innei 2a90db2d1f
feat(mobile): implement NativeTabBarHolder for dynamic tab bar height adjustment
- Added the `NativeTabBarHolder` component to manage the height of the bottom tab bar based on safe area insets, ensuring proper layout on iOS devices.
- Updated the `ReactNativeTab` component to render `NativeTabBarHolder` when conditions are met, enhancing the user interface for iPad and iPhone users.
- Utilized `useLayoutEffect` to adjust the tab bar height dynamically, improving the overall user experience in the mobile app.

These changes aim to provide a more responsive and visually appealing tab bar layout in the mobile application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-24 22:41:59 +08:00
Innei 402004c880
refactor(mobile): simplify animation configurations in dialog and player control components
- Removed damping and stiffness parameters from the entering animations in both the dialog and play/pause button components, streamlining the animation setup.
- This change aims to enhance code readability and maintainability while preserving the intended animation effects.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-24 22:33:42 +08:00
Innei 2ec185364e
chore(mobile): bump version to 0.2.9 in package.json and Info.plist
- Updated the version number from 0.2.8 to 0.2.9 in both package.json and Info.plist to reflect the latest changes and improvements.

This version bump ensures that the mobile app is correctly identified with the latest updates.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-24 20:05:26 +08:00
Innei 04f20e4431
fix: type error
- Created a new .watchmanconfig file to specify directories to ignore during file watching, enhancing performance and reducing unnecessary processing.
- Modified the Xcode project configuration to clean up output paths and ensure proper handling of build flags.
- Updated BottomTabProvider to use ResolvedTabScreenProps for better type safety.
- Adjusted spring configurations in various components for improved animation performance.
- Added Eye2CuteReIcon to EntryDetailScreen for enhanced user interface.

These changes aim to optimize the development workflow and improve the overall user experience in the mobile application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-23 00:27:51 +08:00
Innei ba7e6ce8ce
chore: create AGENTS.md for comprehensive project guidance
- Introduced AGENTS.md to provide detailed, agent-focused guidance for working within the monorepo.
- Consolidated existing CLAUDE.md content and added new sections on project overview, setup commands, quality gates, code style, architecture, UI design tokens, and testing strategies.
- Established clear guidelines for component placement, reusable UI components, and agent workflows to enhance development consistency across applications.

This addition aims to streamline onboarding and improve collaboration among team members by providing a centralized resource for best practices and project structure.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-22 23:33:37 +08:00
Innei 866abbef20
feat(sentry): integrate Sentry for error tracking and monitoring
- Added Sentry for error reporting in the mobile application.
- Updated the app configuration to initialize Sentry with the necessary DSN and settings.
- Replaced Firebase Crashlytics with Sentry for error capturing in the ErrorBoundary component.
- Updated various workflows to include Sentry authentication token.
- Adjusted dependencies to use React Native version 0.79.6 and updated related packages.

This integration enhances the application's ability to track and manage errors effectively.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-22 23:12:11 +08:00
Innei a350950672
feat(tabbar): add onTabItemPress event and enhance TabBar functionality
- Introduced onTabItemPress event in TabBarRootView to handle tab item presses.
- Updated TabBarModule to include the new event in the definition.
- Modified TabBarRootWrapper to accept onTabItemPress and selectedIndex props.
- Enhanced TabRoot to utilize the onTabItemPress callback for scroll-to-top functionality.

This update improves user interaction with the tab bar by allowing for additional actions on tab item presses.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-22 22:26:39 +08:00
Innei a9d5cbd519
feat(ios): support liquid glass tabbar
Signed-off-by: Innei <tukon479@gmail.com>
2025-09-22 22:07:59 +08:00
Stephen Zhou b8eb83fe63
chore: lint 2025-09-19 22:24:30 +08:00
Innei 792134d9ae
chore: update dependencies across multiple packages for improved stability and performance
- Upgraded various dependencies in package.json files, including @electron-forge, @sentry/react, and @better-auth.
- Updated devDependencies and fixed version mismatches in internal components and utilities.
- Enhanced settings sync queue to spread object properties for better payload handling.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-19 22:02:30 +08:00
Justin Ling 3f2a479084
fix: preserve unchanged fields when editing feed (#4496) 2025-09-19 12:50:56 +08:00
Innei d4b1333617
refactor: migrate to client sdk (#4480)
* init

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: migrate API calls to followClient for improved consistency

- Replaced instances of apiClient with followClient in various modules, including push notifications, analytics, achievements, and wallet management.
- Updated related functions to ensure compatibility with the new API structure.
- This refactor enhances code maintainability and aligns with the new client architecture.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: update API calls to followClient for consistency

- Replaced instances of apiClient with followClient across various modules, including metadata, entries, feeds, lists, and inbox management.
- Adjusted related functions to align with the new API structure, enhancing maintainability and consistency throughout the codebase.

These changes improve the overall architecture by standardizing API interactions.

Signed-off-by: Innei <tukon479@gmail.com>

* update

* chore: update dependencies and improve profile settings

- Bumped versions of `@better-auth/expo`, `better-auth`, and `@better-auth/stripe` to 1.3.9 for enhanced functionality.
- Updated `@follow-app/client-sdk` reference in internal shared package.
- Added new fields (`bio`, `website`, `socialLinks`) to the profile settings form and adjusted related types for better user data handling.
- Minor adjustments in user store to accommodate new social links data structure.

These changes improve the profile management experience and ensure compatibility with updated dependencies.

Signed-off-by: Innei <tukon479@gmail.com>

* ssr done

* fix type error for action

* chore: update @follow-app/client-sdk to version 0.3.58 and refactor related code

- Updated the version of `@follow-app/client-sdk` to 0.3.58 in `pnpm-lock.yaml` and `pnpm-workspace.yaml`.
- Refactored various components and modules to utilize the updated SDK, including changes in type imports and API calls.
- Removed deprecated `api-fetch` module and replaced it with `followClient` for API interactions.
- Enhanced type safety and consistency across the application by adjusting type definitions and ensuring proper data handling.

These updates improve the overall code quality and maintainability while ensuring compatibility with the latest SDK features.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: remove hono

Signed-off-by: Innei <tukon479@gmail.com>

* fix action type for mobile

* fix(mobile): exclude all view type

* fix(mobile): exclude all for views

* fix(mobile): html render not work

* feat(mobile): auto show source content support

* fix(mobile): show source content action

* feat: more stable switching timeline back to top

* refactor: simplify entry actions handling and improve context menu integration

- Removed the 'compact' parameter from several components to streamline the entry actions logic.
- Updated the CommandActionButton usage in ActionBar for better context menu interaction.
- Enhanced the ActionBar component to handle mouse position for context menu display.
- Cleaned up imports and adjusted related components to reflect the changes in props and structure.

These modifications aim to improve code clarity and maintainability while ensuring consistent functionality across entry actions.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: streamline ChatInput key handling logic

- Simplified the Enter key handling in the ChatInput component by removing unnecessary conditions.
- Ensured that the handleSend function is called directly when the Enter key is pressed, improving code clarity.

These changes enhance the readability and maintainability of the ChatInput component.

Signed-off-by: Innei <tukon479@gmail.com>

* fix: breadcrumb return back prev page logic

- Updated the logic in useNavigateEntry to ensure the final view is determined correctly based on the type of the view parameter.
- Refactored the EntryTitle component to simplify the rendering of recent readers, improving readability and maintainability.
- Adjusted the EntryHeaderBreadcrumb to pass the view parameter during navigation, enhancing functionality.

These changes aim to improve code clarity and ensure consistent behavior across navigation and entry display components.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: enhance navigation by integrating view parameter retrieval

- Updated EntryColumnShortcutHandler to utilize getRouteParams for retrieving the view parameter during navigation.
- Ensured that the view parameter is passed correctly when navigating to the next entry, improving the consistency of navigation behavior.

These changes aim to enhance the clarity and functionality of the entry column navigation logic.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: enhance modal styling and structure

- Updated modal component styles for improved visual consistency, including changes to border radius, padding, and text styles.
- Adjusted shadow properties in the Tailwind CSS configuration for better appearance in both light and dark themes.
- Refined layout and spacing within the modal to enhance user experience.

These changes aim to improve the overall aesthetics and usability of the modal component.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: enhance entry actions handling and toolbar integration

- Updated the HIDE_ACTIONS_IN_ENTRY_CONTEXT_MENU to explicitly define its type for better type safety.
- Introduced HIDE_ACTIONS_IN_ENTRY_TOOLBAR_ACTIONS to consolidate hidden actions for the toolbar.
- Refactored ActionBar to utilize useSortedEntryActions for improved action filtering and rendering.

These changes aim to streamline the entry actions logic and improve the maintainability of the ActionBar component.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: remove zen and wider mode

Signed-off-by: Innei <tukon479@gmail.com>

* feat: enhance subscription column functionality

- Introduced new components for managing subscription entries, including EntrySubscriptionItem and EntrySubscriptionList, to improve the display and interaction within the subscription column.
- Added hooks for handling entry visibility and data fetching, optimizing performance and user experience.
- Implemented a toolbar for toggling the visibility of the entry list, enhancing user control over the interface.
- Refactored sidebar atoms to support new subscription-related states and actions.

These changes aim to provide a more robust and user-friendly experience in managing subscriptions within the application.

Signed-off-by: Innei <tukon479@gmail.com>

* feat: integrate EntriesContext for improved subscription management

- Added EntriesProvider and context to manage subscription entries more effectively across components.
- Refactored EntrySubscriptionList and related components to utilize the new context for data fetching and state management.
- Introduced EntrySubscriptionSkeleton for better loading states in the subscription column.
- Removed the outdated useEntrySubscriptionData hook to streamline data handling.

These changes enhance the overall architecture and performance of the subscription column, providing a more cohesive user experience.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: fix lock

* fix: remove duplicated feed id, improve performance

* feat: back to feed first

* feat: replace MediaGallery with inline media rendering in SocialMediaLayout

* release(mobile): release v0.2.8

* chore(mobile): update build ID increment script and configuration

- Added a force flag to the build ID increment script to allow manual increments regardless of branch or staged changes.
- Updated iOS build version in Info.plist from 134 to 135.
- Removed unused changelog CLI configuration file.
- Modified bump.config.ts to disable tagging for mobile releases.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: adjust AI chat sidebar and error handling styles

- Added keyboard shortcut support for toggling AI chat in AISmartSidebar.
- Improved styling and transition effects in CollapsibleError for better user experience.
- Updated EntryReadHistory to conditionally render based on user visibility.
- Refactored SourceContentView to simplify rendering logic and improve performance.
- Enhanced Kbd component to support abbreviations for better accessibility.

These changes aim to improve the functionality and usability of the AI chat features and related components.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: implement comprehensive app layout architecture

- Introduced a new layout architecture for the Follow application, leveraging React Router v7's nested routing capabilities.
- Added multiple layout components including MainDestopLayout, TimelineEntryTwoColumnLayout, AIEnhancedTimelineLayout, and SubviewLayout to support various application modes.
- Enhanced the AI chat functionality with a dedicated AIChatLayout, allowing for dynamic panel styles based on user preferences.
- Implemented responsive design features and error handling mechanisms across layouts to improve user experience.
- Refactored existing components to utilize the new layout structure, ensuring a cohesive and maintainable codebase.

These changes establish a robust foundation for the application's UI, enhancing flexibility and user interaction.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: update bump configuration for PR creation

- Changed the base branch for the GitHub PR creation command from 'main' to 'mobile-main' to align with the new branching strategy.
- Removed the changelog generation script from package.json to streamline the build process.

These updates ensure proper versioning and integration with the new mobile branch structure.

Signed-off-by: Innei <tukon479@gmail.com>

* feat: implement entry context menu functionality

- Added a new hook, useEntryContextMenu, to manage context menu actions for entry items, including copy functionality.
- Integrated the context menu into EntrySubscriptionItem and EntryItemWrapper components, enhancing user interaction with entry items.
- Streamlined context menu handling by consolidating related logic into the new hook, improving code maintainability.

These changes provide a more intuitive context menu experience for users interacting with entries.

Signed-off-by: Innei <tukon479@gmail.com>

* feat: enhance media preview functionality with drag context

- Introduced a new context for managing drag state in the media preview component, allowing for improved user interaction during image dragging.
- Updated the image viewer to handle click events more effectively, considering drag state and timing to prevent unintended dismissals.
- Refactored the modal component to ensure the title is correctly rendered, enhancing accessibility.

These changes improve the overall user experience when interacting with media previews, making the interface more intuitive and responsive.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: update client SDK version and dependencies

- Bumped the version of '@follow-app/client-sdk' from 0.3.59 to 0.3.60 in both pnpm-lock.yaml and pnpm-workspace.yaml.
- Updated dependencies for '@folo-services/drizzle' from 0.1.26 to 0.1.27, and '@folo-services/shared' from 0.0.24 to 0.0.25, ensuring compatibility with the latest changes.
- Adjusted Vite configuration to use 'join' instead of 'resolve' for path handling, enhancing code clarity and consistency.
- Removed an unused import in VideoPlayer component to streamline the code.

These updates improve dependency management and maintain code quality across the project.

Signed-off-by: Innei <tukon479@gmail.com>

* fix: interceptor

* chore: update client SDK version to 0.3.64

- Bumped the version of '@follow-app/client-sdk' from 0.3.63 to 0.3.64 in pnpm-lock.yaml and pnpm-workspace.yaml.
- Adjusted component styles in the header for improved layout consistency.
- Refactored user ID handling in metadata fetching to enhance error handling and clarity.
- Updated API client fetch method to use the native fetch function for better compatibility.
- Added User-Agent header in SSR API headers for improved request handling.

These changes ensure the application is up-to-date with the latest SDK version and improve overall code quality and user experience.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: update client SDK path in pnpm configuration

- Changed the '@follow-app/client-sdk' entry in pnpm-lock.yaml and pnpm-workspace.yaml from version 0.3.64 to a local path for development purposes.
- Refactored the fetchEntryContentByStream method in store.ts to simplify its parameters and improve API call handling.

These updates facilitate local development and enhance code clarity in the entry synchronization service.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: remove hono

Signed-off-by: Innei <tukon479@gmail.com>

* chore: update better-auth and expo dependencies to version 1.3.11

- Updated '@better-auth/expo' and 'better-auth' to version 1.3.11 in mobile and shared packages.
- Updated '@better-auth/stripe' to version 1.3.11 in shared package.
- Adjusted peer dependencies for better-auth to reflect the new version.

This update ensures compatibility with the latest features and fixes in the better-auth library.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: update auth module imports and clean up code

- Changed import path for AuthPlugins from '@follow-app/client-sdk' to '@follow-app/client-sdk/auth'.
- Removed commented-out socialLinks field from the baseAuthPlugins definition for clarity.
- Added a new line for better code readability.

These changes improve the organization and maintainability of the auth module.

Signed-off-by: Innei <tukon479@gmail.com>

* fix: restore socialLinks field in baseAuthPlugins definition

- Reintroduced the socialLinks field in the baseAuthPlugins configuration, allowing for JSON type input.
- This change enhances the flexibility of the authentication module by enabling social link integration.

Signed-off-by: Innei <tukon479@gmail.com>

* feat: enhance API client and entry list hooks

- Added a request interceptor to the FollowClient to append a timestamp to the URL for cache-busting.
- Simplified the fetch call in the entry list hooks by removing unnecessary parameters, improving code clarity.
- Added a new line in the entry sync services to enhance readability.

These changes improve the functionality and maintainability of the API client and entry list hooks.

Signed-off-by: Innei <tukon479@gmail.com>

* fix: add missing type error suppression for authClientContext

- Added a TypeScript error suppression comment for the authClientContext.provide call to prevent type-checking issues.
- This change ensures smoother integration of the authentication client in the application.

Signed-off-by: Innei <tukon479@gmail.com>

* fix lint

Signed-off-by: Innei <tukon479@gmail.com>

* lint

Signed-off-by: Innei <tukon479@gmail.com>

---------

Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com>
Co-authored-by: DIYgod <i@diygod.me>
2025-09-17 00:12:54 +08:00
Whitewater 1e2835faed
chore: update dependencies to latest versions (#4490)
* chore: update deps

* chore: update camelcase-keys to version 10.0.0

* chore: update electron-context-menu to version 4.1.1 and remove associated patch

* fix: ts lock

* fix: downgrade linkedom to version 0.18.11

Related to  https://github.com/WebReflection/linkedom/issues/249
2025-09-16 12:49:29 +00:00
Whitewater cde799da4e
chore: update dependencies (#4488)
* chore: update deps

* chore: remove immer patch

* chore: revert @sentry/electron upgrade

* chore: update deps

* chore: dedupe
2025-09-16 19:19:52 +08:00
Innei 16884b070a
chore: update bump configuration for PR creation
- Changed the base branch for the GitHub PR creation command from 'main' to 'mobile-main' to align with the new branching strategy.
- Removed the changelog generation script from package.json to streamline the build process.

These updates ensure proper versioning and integration with the new mobile branch structure.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-15 17:34:53 +08:00
Innei e9a0ba8b8c
chore(mobile): update build ID increment script and configuration
- Added a force flag to the build ID increment script to allow manual increments regardless of branch or staged changes.
- Updated iOS build version in Info.plist from 134 to 135.
- Removed unused changelog CLI configuration file.
- Modified bump.config.ts to disable tagging for mobile releases.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-11 23:44:25 +08:00
Stephen Zhou a452bb7f21
Merge branch 'dev' into release/mobile/0.2.8 2025-09-11 20:14:57 +08:00
Stephen Zhou 8db85827d9
fix(mobile): show source content action 2025-09-11 20:14:24 +08:00
Innei 7921b42e14
release(mobile): release v0.2.8 2025-09-11 17:57:37 +08:00
Stephen Zhou 651fcb2e44
feat(mobile): auto show source content support 2025-09-11 13:21:40 +08:00
Stephen Zhou 54753326ea
fix(mobile): html render not work 2025-09-11 12:54:24 +08:00
Stephen Zhou 69d70750be
fix(mobile): exclude all for views 2025-09-11 10:40:15 +08:00
Stephen Zhou 12ce75e44e
fix(mobile): exclude all view type 2025-09-11 10:25:14 +08:00
DIYgod 280bc2a45e
Revert "Merge pull request #4460 from RSSNext/feat/remove-all-view"
This reverts commit fdf076f28b, reversing
changes made to 3776d82d97.
2025-09-09 21:36:29 +08:00
songkeys ebf86a20a9 feat(view): remove all masonry view 2025-09-09 13:46:41 +08:00
Innei 9d0ab6c363
fix(mobile): filter out 'All' view from timeline selection
- Updated the TimelineViewSelector component to exclude the 'All' view from the active views list.
- Enhanced the rendering logic to ensure only relevant views are displayed, improving user experience and clarity.

These changes streamline the timeline view selection process, making it more intuitive for users.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-06 18:18:00 +08:00
songkeys 7d0a0d1c40
feat(feed): a masonry view for all feed (#4335)
* feat(feed): a masonry view for all feed (wip)

* fix: adjust color and icons

* feat: all masonry

* feat: item details

* fix: styles

* fix: styles

* fix: default tab to be -1

* fix: selectable view

* fix: safe area

* fix: remove safe area

* fix: styles

* fix: styles

* fix: navigation

* fix: aspect-ratio

* fix: hooks

* fix: styles

* chore: comment

* fix: splash issue

* fix: style

* fix: style

* fix: style

* fix: style

* fix: close entry

* fix: styles

* fix: folder in all

* fix: styles

* fix: styles

* fix: styles

* refactor(desktop): enhance entry data handling in AllItem component

- Updated the AllItem component to destructure additional properties (content, description) from the entry state for improved data accessibility.
- Modified the rendering logic to display title, content, or description in the UI, enhancing user experience by providing more context.

This refactor aims to streamline data management and improve the presentation of entry information.

* refactor(desktop): improve entry display order in AllItem component

- Adjusted the rendering logic in the AllItem component to prioritize displaying the entry title before the description and content. This change enhances the clarity and relevance of the information presented to users.

This update aims to further refine the user experience by ensuring the most important entry information is highlighted first.

* feat: enhance AllItem component with keyword highlighting

- Added support for highlighting keywords in the title using a new `title_keyword` property in the ExtraModel.
- Introduced random card and highlight styles for visual differentiation.
- Updated the rendering logic to display highlighted keywords within the title.

This improves the user experience by making important keywords more prominent in the item display.

* refactor(AllItem): update media rendering logic to include Audios

- Modified the rendering conditions in the AllItem component to include Audios in the media display alongside Articles, Notifications, and Social Media.
- Removed the previously defined separate rendering block for Audios to streamline the component structure.

This update enhances the media display functionality by integrating Audios into the existing media rendering logic.

* fix: height calc

* feat(AllMasonry): add refetch and scroll handling functionality

- Introduced a `refetch` prop to the `AllMasonry` component for improved data fetching capabilities.
- Implemented a `handleScrollTo` function to facilitate scrolling to specific items within the masonry layout.
- Updated the component structure to accommodate these new features, enhancing user interaction and experience.

This update enhances the functionality of the AllMasonry component by allowing for better data management and item navigation.

* feat(AllItem): enhance title rendering and entry read tracking

- Updated the title rendering logic to improve keyword highlighting with case-insensitive matching.
- Integrated the `unreadSyncService` to mark entries as read when hovered, enhancing user interaction.
- Refactored highlight styles to support new underline and background options for better visual distinction.

This update improves the user experience by providing clearer title visibility and tracking read status effectively.

* refactor(AllItem): streamline hover behavior and enhance title keyword matching

- Refactored hover handling to utilize a timer for showing previews, improving performance and user experience.
- Updated title keyword matching logic to ensure proper escaping of special characters, enhancing accuracy in highlighting.
- Cleaned up unused underline-wavy styles for better code maintainability.

This update optimizes the interaction flow and improves the visual representation of keywords in titles.

* feat(timeline): filter views based on AI feature flag

- Introduced a check for the AI feature to conditionally filter out the 'All' view from the timeline list.
- Updated the logic to create view IDs based on the filtered views, enhancing the timeline's adaptability to feature availability.

This update improves the timeline's functionality by ensuring that the view options align with the current feature set.

* refactor(AllItem): simplify highlight styles and improve text decoration handling

- Removed unnecessary text-decoration-skip-ink styles from highlight class names for cleaner code.
- Added inline style to ensure consistent text decoration behavior in highlighted keywords.

This update enhances code maintainability and ensures proper rendering of highlighted text.

* fix(EntryColumnGrid): add refetch prop and update comments in AllItem

- Added the `refetch` prop to the `EntryColumnGrid` component for improved data handling.
- Updated comment in `AllItem` from "Social Media" to "Common views" for better clarity.
- Enhanced the no content display in `AllItem` for improved user experience.

This update improves functionality and clarity in the entry column components.

* refactor(AllItem): clean up media handling and improve preview logic

- Removed unused `firstMedia` variable and adjusted media cover logic for clarity.
- Updated aspect ratio handling to ensure default values are set correctly.
- Enhanced the no media available display for better user experience.
- Refactored preview display logic to improve readability and maintainability.

This update streamlines the media handling in the AllItem component and enhances the user interface.

* fix: index key

* refactor(AllItem): optimize title keyword highlighting logic

- Simplified the keyword highlighting logic in the AllItem component by extracting the regex pattern into a separate variable.
- Improved readability and maintainability of the code by reducing redundancy in the title rendering function.

This update enhances the performance and clarity of the title rendering process.

* fix: button width

* fix: first screen navigation

* fix: video hovering autoplay

* feat(timeline-tabs): implement customizable timeline tabs settings

- Added a new `TimelineTabsSettingsModal` component for managing visible and hidden timeline tabs.
- Introduced drag-and-drop functionality for reordering tabs and customizing their visibility.
- Updated `SubscriptionTabButton` to accept a shortcut prop for improved keyboard navigation.
- Enhanced global shortcuts handling to allow bypassing input restrictions for specific actions.

These changes provide users with greater flexibility in managing their timeline tabs, improving the overall user experience.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: clean up error handling in AllMasonry component and update UnreadSyncService to use new API method

- Removed console log from error handling in the AllMasonry component to streamline the code.
- Updated the UnreadSyncService to utilize the new `markAllAsRead` API method, improving the readability and structure of the request handling.

These changes enhance code clarity and maintainability across the affected components.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: optimize rendering performance in AllMasonry component

- Introduced `startTransition` for setting width in the ResizeObserver to improve rendering performance during layout updates.
- Updated the `LoadingSkeleton` component's class names for better styling consistency.
- Simplified key generation in the `SkeletonGrid` component by using `null` instead of `crypto.randomUUID()`.

These changes enhance the efficiency and maintainability of the AllMasonry component and its related elements.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: simplify icon rendering in TimelineTabsSettingsModal

- Removed conditional rendering for the icon in the TabItem component, directly displaying the icon for improved clarity and performance.
- This change streamlines the code and enhances the maintainability of the TimelineTabsSettingsModal component.

Signed-off-by: Innei <tukon479@gmail.com>

---------

Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: Innei <tukon479@gmail.com>
2025-09-05 21:24:42 +08:00