Commit Graph

545 Commits

Author SHA1 Message Date
DIYgod 4ba047ebc9
feat(ssr): use hcaptcha 2025-05-25 12:37:58 +08:00
DIYgod 22aec9207e
feat(desktop): use hcaptcha 2025-05-25 12:17:40 +08:00
DIYgod fbb6e68ab2
Merge pull request #3802 from RSSNext/sync/main-to-dev-20250525
Sync main branch to dev branch
2025-05-25 10:00:12 +08:00
Innei a165c1a5e5
feat: update social media icon styles and enhance hotkey configuration
- Updated icon class names for social media links to include color styles for better visibility in light and dark modes.
- Added a new hotkey configuration option in the Vite setup to improve user experience with customizable shortcuts.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-25 00:53:16 +08:00
DIYgod f2f65545fb
feat(desktop): speed up some animations 2025-05-24 11:21:46 +08:00
Innei 62fc0a0cb1
feat: customize shortcuts (#3786)
* refactor: update command categories and labels for consistency

- Replaced existing command categories with more descriptive names such as "Entry Render", "Global", "Integration", "Layout", "List", "Settings", "Timeline", and "Subscription".
- Updated command labels to remove unnecessary prefixes, enhancing clarity and uniformity across the application.
- Adjusted imports to include the new CommandCategory type for better type safety.

This refactor improves the organization and readability of command definitions, contributing to a more intuitive user experience.

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

* update

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

* update

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

* update

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

* feat: enhance command shortcut customization and recording functionality

- Added a new hotkey scope for recording commands.
- Introduced a mechanism to override command shortcuts using local storage.
- Implemented a key recorder for capturing user-defined shortcuts with validation rules.
- Updated the UI for editing command shortcuts, allowing users to customize their key bindings more intuitively.

This enhancement improves user experience by providing more flexibility in managing command shortcuts.

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

* feat: enhance command shortcut customization by adding new commands

- Updated the default command shortcut for toggling the timeline column.
- Expanded the set of customizable commands to include various subscription and entry actions, improving user flexibility in managing shortcuts.

This update enhances the customization capabilities for command shortcuts, allowing users to tailor their experience more effectively.

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

* refactor: scope

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

* feat: add global commands for quick add and toggle corner play

- Introduced new global commands: "Quick Add" and "Toggle Corner Play" with associated keyboard shortcuts.
- Updated command IDs and types to accommodate the new functionalities.
- Enhanced the event bus integration for better command handling.

This update improves user interaction by providing quick access to essential features through keyboard shortcuts.

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

* refactor: remove unused hotkey scope and streamline command bindings

- Deleted the `useSwitchHotkeyScope` hook and its references to simplify the hotkey management.
- Updated command bindings to ensure they function correctly without the removed scope.
- Enhanced the logic for determining when commands should be active based on the current focus and active scopes.

This refactor improves the clarity and efficiency of the command handling system, reducing unnecessary complexity.

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

* feat: add shortcut conflict detection and enhance shortcut customization UI

- Introduced a new hook `useIsShortcutConflict` to check for conflicts between user-defined shortcuts and existing ones.
- Updated the `EditableCommandShortcutItem` component to visually indicate when a shortcut is customized by the user.
- Enhanced the `ShortcutInputWrapper` to display conflict warnings and improve user interaction when editing shortcuts.

This update improves the user experience by allowing users to easily identify and resolve shortcut conflicts, enhancing the overall customization capabilities of command shortcuts.

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

* feat: update command structure and enhance shortcut descriptions

- Changed the command ID for toggling the timeline column to toggle the subscription column for better clarity.
- Updated command labels to include descriptions for various commands, improving user understanding of their functionalities.
- Enhanced localization files to reflect the new command descriptions, ensuring a consistent user experience across different languages.

This update improves the usability of command shortcuts by providing clearer descriptions and a more intuitive command structure.

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

* feat: introduce new keyboard shortcuts system

- Added a comprehensive command shortcut system that supports multiple categories including global operations, layout controls, timeline navigation, content rendering, subscription management, and entry actions.
- Users can access and customize key bindings through `Settings` -> `Shortcuts`.

This enhancement improves user efficiency by providing a structured way to manage keyboard shortcuts.

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

* refactor

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

* feat: enhance focusable component with presets for improved command handling

- Introduced `FocusablePresets` to encapsulate common focus-related logic, improving code reusability.
- Updated command bindings in various components to utilize the new presets, streamlining the focus management process.
- Enhanced the `Focusable` component to support additional scopes, improving the overall functionality and user experience.

This update simplifies the management of focusable elements and enhances the command handling system.

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

* refactor: enhance Focusable component with asChild prop for improved flexibility

- Updated the Focusable component to support an `asChild` prop, allowing it to render a child element with focusable properties.
- Modified the BizFocusableProps interface to align with the new FocusableProps structure.
- Adjusted usage in the FeedColumn component to utilize the new `asChild` feature, enhancing the component's flexibility.

This change improves the usability of the Focusable component by allowing it to wrap existing elements while maintaining focus management capabilities.

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

* refactor: update WindowUnderBlur and FeedColumn components for improved structure and functionality

- Refactored the WindowUnderBlur component to accept a customizable `as` prop, enhancing its flexibility in rendering.
- Updated the FeedColumn component to utilize the new `WindowUnderBlur` structure, allowing it to wrap the Focusable component directly.
- Enhanced the Focusable component's logic to include additional conditions for the SubscriptionList scope, improving focus management.

These changes streamline the component architecture and improve the overall user experience by allowing for more versatile component usage.

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

* refactor: update command bindings in SubscriptionList for improved focus management

- Replaced the `isFocus` variable with `inSubscriptionScope` to streamline focus handling in the SubscriptionList component.
- Updated command bindings and hotkey conditions to utilize the new `inSubscriptionScope` logic, enhancing the clarity and functionality of focus management.

These changes improve the overall structure and usability of the SubscriptionList component, ensuring better focus handling within the subscription context.

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

---------

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-23 21:26:55 +08:00
Stephen Zhou 19717e96b7
refactor: unread store (#3788) 2025-05-23 17:25:09 +08:00
Innei 4101430643
fix: remove `thumbnailRatio` for enhance
Signed-off-by: Innei <tukon479@gmail.com>
2025-05-22 21:54:26 +08:00
DIYgod e525edc83d
feat(desktop): display list analytics 2025-05-22 20:05:07 +08:00
Stephen Zhou f85f2f5fbb
feat: allow hide private subscription in view timeline (#3773) 2025-05-22 17:09:53 +08:00
Innei 8bcbb7b067
chore(dependencies): update react-native-uikit-colors and tailwindcss-uikit-colors to version 0.6.2
- Updated the version of react-native-uikit-colors from 0.5.2 to 0.6.2 in multiple package.json files.
- Updated the version of tailwindcss-uikit-colors from 0.6.0 to 0.6.2 in relevant package.json files.
- Ensured consistency across the project by aligning dependency versions.

These changes help maintain compatibility and leverage improvements in the updated packages.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-22 15:09:04 +08:00
Innei 4f7158e287
fix(utils): streamline scroll animation logic in springScrollTo
- Removed unnecessary requestAnimationFrame handling to simplify the scroll animation process.
- Enhanced the stopping condition for animations to ensure smoother transitions during scrolling.

These changes improve the efficiency and responsiveness of the scrolling behavior.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-22 14:18:28 +08:00
Innei 70da1ab94b
fix(desktop): improve scroll animation handling in EntryContent
- Introduced a reference for scroll animations to manage their lifecycle more effectively.
- Updated the cleanup logic to stop ongoing animations when scrolling actions are triggered.
- Enhanced the scroll behavior by ensuring animations are properly halted before new scroll actions are initiated.

These changes aim to provide a smoother user experience during content transitions.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-22 14:16:47 +08:00
Innei f52cf91d9b
fix(desktop): add highlight boundary condition
- Updated EventBus dispatch calls in layout commands to include a highlightBoundary parameter for better focus control.
- Modified EntryItemWrapper to dispatch focus command with highlightBoundary set to false after a timeout.
- Adjusted GlobalHotkeysProvider to dispatch focus commands with highlightBoundary set to true for improved user experience.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-22 13:13:47 +08:00
Whitewater c48b94a525
fix: enhance video parse in entry content (#3782)
* fix: add source attributes for video elements in parseHtml function

* feat: enhance video component to support source elements and preview images
2025-05-22 02:39:24 +08:00
Innei bc0a9358b5
feat: title transform follow the english title case rules
Signed-off-by: Innei <tukon479@gmail.com>
2025-05-21 22:34:37 +08:00
Innei 65b648be8f
feat: refactor zen mode functionality and update shortcuts
- Removed the zen mode option from the app menu and adjusted the corresponding global shortcut to use `$mod+Shift+Z`.
- Updated the zen mode state management in the settings module to streamline the toggle functionality.
- Enhanced command handling for zen mode, integrating it with the new command structure for better consistency.
- Updated localization files to reflect changes in shortcut labels.

This refactor improves the overall user experience by ensuring a more intuitive shortcut for toggling zen mode.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-21 22:03:06 +08:00
DIYgod 96cb362944
fix: types 2025-05-21 21:51:13 +08:00
DIYgod 0db149fe12
feat(desktop): notifications settings 2025-05-21 21:42:18 +08:00
Whitewater f1f163e543
fix: prevent hydration error by set TooltipTrigger to use asChild prop (#3778) 2025-05-21 10:25:41 +00:00
Innei 4ae8bf21e8
chore: add `Prettify` helper
- Added APP_NAME constant with value "Folo" to global declarations in both desktop and SSR environments.
- Updated type definitions to use Prettify for improved type handling in context menu and component definitions.
- Enhanced the useTitle hook to incorporate APP_NAME in the title template for better context in the application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-21 16:52:39 +08:00
Innei 6be20f483c
feat: enhance shortcut management and add new commands
- Removed the `$mod` replacement for `Meta` in shortcut handling to ensure proper cross-platform functionality.
- Introduced new commands for "Open in Browser" and "Open Site in Browser" with corresponding shortcuts.
- Updated the `useFeedActions` and `useListActions` hooks to utilize the new command shortcuts.
- Improved the `transformShortcut` function for better platform-specific shortcut handling.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-20 23:37:37 +08:00
Innei 0f5a0ad8b0
feat: update shortcut handling to use `$mod` for cross-platform compatibility
- Replaced instances of `Meta` with `$mod` in shortcut definitions across various components and hooks.
- Introduced new shortcuts for actions like "Open in Browser" and "Mark All as Read".
- Enhanced the `useCommandBinding` hook to support the new shortcut structure.
- Updated UI components to reflect the changes in shortcut keys, ensuring consistency in user experience.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-20 23:15:29 +08:00
DIYgod bf2312057d
feat(desktop): display route top feeds 2025-05-20 22:23:04 +08:00
Stephen Zhou 25d1f06fd5
fix(desktop): reset highlightMotion state after switching entry 2025-05-20 22:07:40 +08:00
Innei 4fa171b418
feat: add `folo` scheme
- Introduced `LEGACY_APP_PROTOCOL` to manage legacy protocol support alongside the new `APP_PROTOCOL`.
- Updated various files to utilize the new protocol constants, ensuring compatibility and consistency across the application.
- Enhanced mobile app configuration to support multiple schemes for better flexibility.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-20 20:46:12 +08:00
Innei 014c2cafc5
fix: tablist indicator initial position
- Modified the `Tabs` component to initialize the indicator state with `undefined` for width and position.
- Updated rendering logic in `TabsList` to conditionally apply styles based on the presence of indicator values, improving robustness.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-20 19:39:05 +08:00
DIYgod 5ce34edc98
feat(desktop): display rsshub route heat 2025-05-20 19:38:07 +08:00
DIYgod 5f06de023f
feat(desktop): discover category independent page 2025-05-20 17:21:34 +08:00
Innei b96a02a416
feat: enhance date formatting and UI component styles
- Updated `RelativeDay` component to utilize user-defined date formats.
- Refactored date formatting logic to improve performance with `useMemo`.
- Adjusted styles in `DateItem` and `ScrollArea` components for better visual consistency.
- Enhanced `SegmentGroup` background styling for improved UI clarity.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-20 16:55:16 +08:00
Cason Kervis fc1e7ea730
feat: add Zotero integration and sort integration panel (#3738) 2025-05-20 12:08:28 +08:00
Innei 243cd37a88
feat: enhance hotkey functionality and command structure
- Added new hotkey scope for sub-layer functionality.
- Introduced `useCommandBinding` hook to streamline command binding.
- Updated command IDs to include focus to entry render functionality.
- Refactored hotkey registration to improve clarity and maintainability.
- Adjusted event handling for better focus management in the global hotkeys provider.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-19 23:11:23 +08:00
Innei 939d7f9b2b
fix: discover form overflow style
Signed-off-by: Innei <tukon479@gmail.com>
2025-05-19 18:26:33 +08:00
DIYgod 2234b4b1a6
feat: display video duration 2025-05-18 14:00:14 +08:00
DIYgod c8d11b58e9
feat: update transformVideoUrl 2025-05-18 14:00:13 +08:00
Innei ff8cee07e1
chore: update tos.md 2025-05-16 00:07:10 +08:00
Innei e69d120bd9
feat(legal): integrate privacy policy and terms of service into the application, #3577
- Added a new internal package for legal documents, including privacy policy and terms of service.
- Implemented a build script to convert markdown files to HTML for easy access.
- Updated the mobile and desktop applications to link to the new legal documents.
- Enhanced the login modal to include links to the privacy policy and terms of service.
- Updated routing in the SSR application to serve the legal documents.

These changes ensure compliance with legal requirements and improve user access to important information.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-15 23:58:07 +08:00
DIYgod 180933b709
feat(deskotp): remember discover language 2025-05-15 21:26:43 +08:00
DIYgod 75102f4e12
feat(desktop): trending api types 2025-05-15 17:57:13 +08:00
Innei 13120c7b0d
feat(desktop): enhance subscription navigation and shortcuts
- Renamed and updated shortcut configurations from "feeds" to "subscriptions" for better clarity and organization.
- Introduced new commands for navigating to the next and previous subscriptions.
- Implemented keyboard shortcuts for subscription navigation and focused subscription view.
- Updated localization files to reflect changes in shortcut keys and labels.

These enhancements improve user experience by streamlining subscription management and navigation.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-15 14:55:06 +08:00
lawvs d359b74190 fix: correct import path for Spring constant 2025-05-15 01:10:43 +08:00
Innei aff493f38f
feat(desktop): integrate AvatarGroup component for enhanced user read history display
- Added AvatarGroup component to encapsulate user avatars in EntryReadHistory for improved layout and interaction.
- Refactored EntryReadHistory to utilize AvatarGroup, simplifying the rendering of user avatars.
- Updated EntryUser component to enhance user profile interaction and tooltip display.

These changes enhance the visual presentation and user experience of the read history feature.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-15 00:04:29 +08:00
DIYgod afb7d57b82
feat(desktop): SubscribeModalOpened tracker event 2025-05-14 22:58:20 +08:00
Innei 51d9328f71
fix(desktop): enhance error handling and focus management in components
- Updated PageError component to allow pointer events for better user interaction.
- Refactored FeedColumn to utilize useFocusable for improved keyboard navigation and removed unnecessary focus state management.
- Enhanced highlightElement function to support customizable highlight colors and optimized canvas usage.

These changes improve accessibility and user experience by refining error handling and focus management across components.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-14 22:02:01 +08:00
Innei 0667b2bacb
fix(desktop): improve UI elements and keyboard interaction
- Adjusted CSS properties in BoostProgress for better alignment.
- Implemented keyboard event listener in GlobalHotkeysProvider to highlight focused elements on Tab key press.
- Enhanced highlightElement function with z-index for improved visibility.
- Updated TooltipTrigger in RelativeTime to prevent focus issues.
- Added tabIndex to RadioCard for better keyboard navigation.

These changes enhance user experience by refining UI components and improving keyboard accessibility.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-14 21:52:04 +08:00
Innei c2d8ffaa19
feat: support vim keybinding navigation between entry content and timeline
Signed-off-by: Innei <tukon479@gmail.com>
2025-05-13 22:35:26 +08:00
Innei 262a7ce55e
feat: enhance command binding and shortcut management
- Introduced `useCommandBinding` to streamline the registration of command hotkeys.
- Added new entry navigation commands for scrolling to the next and previous entries.
- Updated existing components to utilize the new command binding approach, improving consistency and maintainability.
- Refactored shortcut handling to support new entry render commands, enhancing user experience.

This update aims to improve the overall efficiency of command and shortcut management in the application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-13 21:13:04 +08:00
Stephen Zhou f329ae905f
fix: reenable summary as default 2025-05-13 15:45:30 +08:00
Stephen Zhou ed95fb6b23
feat: show rsshub error message 2025-05-13 15:34:29 +08:00
Innei 1d9507842e
feat: enhance shortcut management and command registration
- Introduced new macro functions for shortcut localization, improving the handling of shortcut keys.
- Updated shortcut configurations to utilize the new macro functions, ensuring consistency in key naming.
- Refactored command registration to include new entry navigation commands, enhancing user interaction.
- Improved hotkey management by adding support for new entry scrolling commands.

This update aims to streamline shortcut handling and improve overall user experience in navigation.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-12 22:21:20 +08:00