Commit Graph

27 Commits

Author SHA1 Message Date
DIYgod 1158281f59
chore(deps): update frontend dependencies (#5038)
* chore(deps): update frontend dependencies

* fix(ci): format OTA verification commands
2026-07-10 22:36:12 +08:00
DIYgod 0b344fd0e7
fix(mobile): align translation gating with real roles (#4906) 2026-03-11 10:30:46 +08:00
DIYgod 4e1c9bfdb4
feat: add moonshotai provider and user role priority constants 2025-11-15 12:10:03 +08:00
DIYgod abde9948be
fix: update Discord invite link across documentation and code 2025-11-13 11:47:05 +08:00
Stephen Zhou 5f0e41fa5d
chore: add basic role enum 2025-11-11 15:06:10 +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
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
Stephen Zhou 86980e71f6
feat: update date mention and mention information (#4578) 2025-10-20 17:34:39 +08:00
Stephen Zhou 35cd41e3fa
refactor: remove view--1 (#4548) 2025-10-15 21:51:40 +08:00
DIYgod 6c1ee7dc30
feat: compact unified view 2025-09-09 21:36:29 +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
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
Stephen Zhou f3b83e6b87
feat(desktop): payment for ai (#4309)
* feat: payment for ai

* update

* update

* remove referral progress

* update

* type

* update
2025-08-20 11:27:49 +08:00
Innei 01ed1c63b5
refactor: Progressive migration Client SDK (#4227)
* Implement code changes to enhance functionality and improve performance

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

* chore: update @follow-app/client-sdk to version 0.2.6 and add new dependencies
refactor: adjust types in server configs and features to use ExtractResponseData
feat: implement followApi for server configurations and API client context

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

* feat: move to client-sdk

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

* feat: update @follow-app/client-sdk to version 0.3.22 and add ShrinkingFocusBorder component

- Updated the version of @follow-app/client-sdk in pnpm-workspace.yaml from 0.3.15 to 0.3.22.
- Introduced a new ShrinkingFocusBorder component that animates a focus border effect using a canvas element.
- Implemented resize observer for persistent border and animation logic for visibility changes.

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

---------

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-23 01:21:34 +08:00
Stephen Zhou 30bb37c7b9
feat: referral (#3761)
Co-authored-by: DIYgod <i@diygod.me>
Co-authored-by: Innei <tukon479@gmail.com>
2025-07-10 09:47:11 +08:00
Innei a5439d861b
feat(download): enhance mobile download experience with platform detection and redirection
Signed-off-by: Innei <tukon479@gmail.com>
2025-07-07 19:57:01 +08:00
Innei 47129d5d0d
feat(settings): add accent color customization and update UI components
- Introduced accent color setting to allow users to customize the app's interface.
- Updated various components to utilize the new accent color, including buttons, sliders, and text elements.
- Added translations for accent color settings in English, Japanese, and Chinese.
- Refactored related styles in Tailwind CSS configuration to support the new accent color feature.

Signed-off-by: Innei <tukon479@gmail.com>
2025-07-04 23:21:09 +08:00
DIYgod a0ee5b16d2
feat: update twitter handle 2025-07-03 15:12:18 +08:00
Innei db53bdb468
fix: ssr server move to esm (#3994)
* chore: fix prettier error

* refactor: migrate to ES modules and update global constants handling

- Changed the global constants definition to use Object.assign for better clarity.
- Replaced usage of `isDev` with `__DEV__` throughout the codebase for consistency.
- Updated imports to use ES module syntax, including dynamic imports where necessary.
- Removed the deprecated `env.ts` file and adjusted related logic in the build scripts.
- Ensured compatibility with ES module format in various files, including Vite and API client configurations.

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

* refactor(api): migrate handler to ES module syntax

- Updated the API handler to use ES module export syntax.
- Removed commented-out configuration for Node.js runtime.

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

* feat(404): enhance 404 page with animations and improve accessibility

- Replaced `motion` components with `m` shorthand for better readability.
- Introduced animation controls for various elements on the 404 page to enhance user experience.
- Updated the glitch text array for consistency.
- Adjusted layout and styling for improved visual presentation.
- Removed unused `framer-lazy-feature` file and updated `MotionProvider` to use `domMax` for performance optimization.

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

* feat(og): replace Folo text with SVG logo in OGCanvas component

- Updated the OGCanvas component to replace the static "Folo" text with a new LogoText SVG component for improved branding.
- Added the LogoText function that defines the SVG structure for the logo.

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

* refactor(tsdown): update font imports to use dynamic loading

- Modified font imports in `tsdown.config.ts` to utilize dynamic loading with `then` for improved performance and error handling.
- Introduced a no-operation function to handle the promise resolution of font imports.

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

* refactor(404): replace Jotai provider with RootProviders for improved context management

- Updated the 404 component to use `RootProviders` instead of the Jotai store provider for better context handling.
- Simplified the component structure while maintaining functionality.

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

---------

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-24 13:16:20 +08:00
Stephen Zhou 0a2a099d7b
refactor(mobile): sperate store package (#3819) 2025-05-26 22:54:15 +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 7079022e2f
fix(ssr): styles 2025-05-08 12:24:56 +08:00
Stephen Zhou ec5fa5b242
fix(mobile): discover category overlap 2025-05-07 22:14:37 +08:00
DIYgod 9a90b2cb4d
feat(ssr): optimize ssr header 2025-05-07 21:22:49 +08:00
Innei 0e069ecdd7
feat: add Apple App Store metadata and improve server logging
- Added meta tags for Apple App Store integration in both desktop and SSR index HTML files.
- Enhanced server logging to display the server's IP address when running outside of Vercel.
- Introduced a constant for the Apple App Store ID to streamline future updates.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-30 22:37:42 +08:00
Innei 4d746522f1
refactor: remove unused files and clean up project structure
- Deleted obsolete configuration files and unused components across various packages.
- Updated package.json files to reflect the removal of dependencies.
- Cleaned up code by removing unnecessary exports and unused imports in multiple modules.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-28 20:58:51 +08:00