DIYgod mirror
Go to file
Innei f21b9e7bf0
refactor: replace @react-navigation and expo-router (#3151)
* init

* init

* refactor(mobile): enhance tab navigation and structure

- Added `TabScreenModule` and `TabScreenView` to support dynamic tab management.
- Replaced `FOTabBarController` with a more streamlined `UITabBarController` implementation.
- Updated `TabBarModule` to utilize new tab switching logic and event handling.
- Modified `TabBarRootView` to manage tab views more effectively and handle tab index changes.
- Adjusted main application file to integrate new tab components and improve navigation flow.

These changes aim to improve the tab navigation experience and maintainability of the codebase.

* tabbar

* refactor(mobile): streamline navigation and tab management

- Refactored main application structure to enhance tab navigation, integrating `BottomTabs` and `TabRoot` components for improved tab management.
- Updated `NavigationHeader` and `SafeNavigationScrollView` to better handle header visibility and scrolling behavior.
- Introduced `ScreenItemContext` for managing screen state and scroll position across navigation.
- Cleaned up unused imports and optimized component structure for better maintainability.

These changes aim to improve the overall navigation experience and code organization within the mobile application.

* update

* feat(mobile): implement BottomTabProvider for enhanced tab management

- Introduced `BottomTabProvider` component to manage tab visibility and scroll view context.
- Refactored `BottomTabs` to utilize context for background opacity and tab visibility, simplifying the component structure.
- Removed the deprecated `TabClient` component to streamline the tab implementation.
- Added a null check in `Tabbar` to prevent rendering when there are no tab screens.

These changes aim to improve the organization and functionality of the tab navigation system within the mobile application.

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

* update

* update

* update

* update

* update

* feat(mobile): integrate ErrorBoundary and enhance navigation context

- Added `ErrorBoundary` component to handle errors gracefully within the application.
- Integrated `BottomTabProvider` to manage tab visibility and scroll view context more effectively.
- Refactored navigation components to utilize new context for improved state management.
- Updated `SafeNavigationScrollView` and `Settings` components to streamline scrolling behavior and context usage.
- Removed deprecated code and optimized component structure for better maintainability.

These changes enhance the user experience by providing error handling and improving navigation management.

* feat(mobile): enhance navigation and layout components

- Registered new screens (`TermsScreen`, `LoginScreen`, `SignUpScreen`, `ForgetPasswordScreen`, `TwoFactorAuthScreen`) with the `NavigationSitemapRegistry` for improved navigation management.
- Adjusted layout properties in `HeaderElements` and `NavigationHeader` for better alignment and responsiveness.
- Refactored `Tabbar` to remove unnecessary animated reactions, optimizing performance.
- Exported `ActionGroup` component for better reusability in `TimelineSelectorProvider`.
- Updated `DebugScreen` to utilize the new navigation methods for component presentation.

These changes improve the overall navigation experience and component structure within the mobile application.

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

* feat(mobile): implement new architecture support and refactor TabBar components

- Added support for the new architecture in the iOS podspec by conditionally defining `OTHER_SWIFT_FLAGS`.
- Refactored `TabBarPortalModule`, `TabBarRootView`, and `TabScreenView` to improve structure and maintainability.
- Replaced native view components with standard React Native views in `TabBarPortal`, `TabRoot`, and `TabScreen` for better compatibility and performance.
- Updated import paths for `TabScreenProps` to ensure correct type usage.

These changes enhance the navigation experience and prepare the codebase for future architecture improvements.

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

* feat(mobile): refactor navigation and onboarding components

- Removed outdated navigation dependencies from `package.json` to streamline the project.
- Enhanced `TabBarRootView` to improve tab switching animations and manage view transitions more effectively.
- Updated `App` component structure for better readability and integration of onboarding logic.
- Introduced `OnboardingScreen` with improved layout and navigation handling.
- Refactored navigation context types to include additional screen options for better flexibility.

These changes enhance the navigation experience and prepare the application for future onboarding features.

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

* feat(mobile): enhance intent handling with navigation integration

- Added navigation support in `useIntentHandler` to handle incoming URLs more effectively.
- Integrated `FollowScreen` for presenting user-specific content based on URL parameters.
- Updated effect dependencies to include navigation for improved functionality.

These changes improve the handling of deep links and enhance the user experience when navigating to the follow screen.

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

* chore: clean up pnpm-lock.yaml by removing unused navigation dependencies

- Removed outdated navigation packages including `@react-navigation/bottom-tabs`, `@react-navigation/drawer`, and `@react-navigation/native` to streamline the lock file.
- Cleaned up unnecessary entries and peer dependencies to improve maintainability and reduce clutter.

These changes help in optimizing the dependency management for the project.

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

* lint

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

* chore: auto-fix linting and formatting issues

* fix

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

* update

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

* refactor: update PickerIos component and remove FeedDrawer

- Added import for Portal in PickerIos component.
- Removed the FeedDrawer component entirely, cleaning up unused code.
- Replaced router.dismiss() with navigation.dismiss() in list screen options for better navigation handling.

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

---------

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-19 22:35:49 +08:00
.github refactor: replace @react-navigation and expo-router (#3151) 2025-03-19 22:35:49 +08:00
.vscode chore: extract ssr as single app 2025-03-03 20:01:18 +08:00
api chore: remove tsconfig present to fix `vercel dev` 2024-11-08 00:22:38 +08:00
apps refactor: replace @react-navigation and expo-router (#3151) 2025-03-19 22:35:49 +08:00
configs chore: desktop dir (#2924) 2025-03-02 17:19:22 +08:00
constants init 2024-09-20 16:54:31 +08:00
icons/mgc feat(mobile): implement onboarding screen (#3029) 2025-03-13 18:15:54 +08:00
packages feat: rename (#3181) 2025-03-19 21:43:55 +08:00
patches refactor: replace @react-navigation and expo-router (#3151) 2025-03-19 22:35:49 +08:00
plugins/eslint chore: desktop dir (#2924) 2025-03-02 17:19:22 +08:00
scripts chore: extract ssr as single app 2025-03-03 20:01:18 +08:00
wiki
.editorconfig
.gitignore chore: recover .env.example 2025-03-10 18:40:04 +08:00
.npmrc chore: update dependencies 2025-02-19 15:27:20 +08:00
.nvmrc
.prettierignore style: use prettier-plugin-tailwindcss and disable sort in lint 2024-12-23 22:19:45 +08:00
.prettierrc.mjs chore: disbale prettier objectWrap 2025-02-20 18:03:18 +08:00
CHANGELOG.md chore(desktop): Remove CHANGELOG.md and update package configuration 2025-03-04 16:53:59 +08:00
CODE_OF_CONDUCT.md chore: add CODE_OF_CONDUCT 2024-10-31 20:27:46 +08:00
CONTRIBUTING.md docs: update CONTRIBUTING.md with comprehensive development guides 2025-03-03 20:11:08 +08:00
LICENSE
README.md docs: update slogan 2025-02-18 21:03:58 +08:00
SECURITY.md chore: add CODE_OF_CONDUCT 2024-10-31 20:27:46 +08:00
bump.hotfix.config.js chore: extract ssr as single app 2025-03-03 20:01:18 +08:00
changelogithub.config.ts chore: update changelogithub 2024-10-12 15:16:18 +08:00
eslint.config.mjs chore: pnpm lock 2025-03-14 14:41:18 +08:00
package.json feat: rename (#3181) 2025-03-19 21:43:55 +08:00
pnpm-lock.yaml refactor: replace @react-navigation and expo-router (#3151) 2025-03-19 22:35:49 +08:00
pnpm-workspace.yaml build: update to pnpm 10 (#3149) 2025-03-17 12:18:27 +08:00
tsconfig.json chore: enable noUncheckedIndexedAccess, better type check (#2608) 2025-01-18 22:35:23 +08:00
tsslint.config.ts chore: use tsslint for lint rule require type check 2025-01-17 21:49:51 +08:00
turbo.json feat: rename (#3181) 2025-03-19 21:43:55 +08:00
vercel.json chore: rewrite for vercel 2024-12-16 20:06:39 +08:00
vitest.workspace.ts

README.md

Logo

Follow

Discord · Twitter · Releases

RSSNext%2Ffollow | Trendshift RSSNext%2Ffollow | Trendshift RSSNext%2Ffollow | Trendshift

As they say, your thoughts are what you read—and weve been consuming noisy feeds for too long! Follow organizes content into one timeline, keeping you updated on what matters, noise-free. Share lists, explore collections, and enjoy distraction-free browsing.

👋🏻 Getting Started & Join Our Community

Whether for users or professional developers, Follow will be your open information playground. Please be aware that Follow is currently under active development, and feedback is welcome for any issue encountered.

Feel free to try it using the following methods:

No installation necessary! Visit our web app to experience it firsthand.
Download and install the desktop client for a smoother experience and enhanced features.

You can also install using the following methods maintained by our community:

Discord Join our Discord server to connect with developers, request features, and receive support.
Follow us on X/Twitter for product updates and to join in on reward activities.
!IMPORTANT]

**Star Us**, You will receive all release notifications from GitHub without any delay \~
Performance Stats of RSSNext/Follow - Last 28 days

Features

Customized Information Hub

Subscribe to a vast range of feeds and curated lists. Curate your favorites and keep track of what matters most to you.

AI At Your Fingertips

A smarter and more efficient browsing with AI-powered features like translation, summary, and more.

Dynamic Content Support

Because we know content is more than just text. From articles to videos, images to audio — Follow gets it all covered.

$POWER An Ownership Economy

Tip creators across instantly with $POWER, support content you love, and unlock value in your own work. Your content, your power.

More Than Just An App

This isnt just another app. Follow is a community — introducing a new era of openness and community-driven experience.

🤝 Contributing

If you are eligible to use Follow, you are welcome to join the open source community to build together.

Before you start, make sure you have enabled Corepack. Corepack makes sure you are using the correct version (packageManager field in package.json) for package manager when you run corresponding commands.

corepack enable

Install dependencies.

pnpm install

Develop in the browser

pnpm run dev

Then the browser opens https://app.follow.is/__debug_proxyyou can access the online API environment to development and debugging.

Develop in the electron

You need to fill in the required environment variables first.

cp .env.example .env

Then set VITE_API_URL to https://api.follow.is and run:

pnpm run dev:electron

Since it is not very convenient to develop in Electron, the first way to develop and contribute is recommended at this stage.

[!TIP] If you can't log in to the app, copy the __Secure-better-auth.session_token in the cookie from your browser into the app.

📝 License

Follow is licensed under the GNU General Public License version 3 with the addition of the following special exception:

All content in the icons/mgc directory is copyrighted by https://mgc.mingcute.com/ and cannot be redistributed.

All content in the lottie directory is distributed under the Lottie Simple License.