[PR #7802] [MERGED] refactor: deeplink handler #8123

Closed
opened 2026-03-23 23:22:42 +00:00 by mirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/AppFlowy-IO/AppFlowy/pull/7802
Author: @LucasXu0
Created: 4/22/2025
Status: Merged
Merged: 4/24/2025
Merged by: @LucasXu0

Base: mainHead: workspace_deeplink


📝 Commits (9)

  • ea478d5 refactor: deeplink handler
  • a64cfce Merge branch 'main' into workspace_deeplink
  • e6e25a7 feat: add invitation deeplink handler
  • 4c55a55 test: add deeplink tests
  • c8e2811 feat: add user_id in the invitation callback
  • da57f79 feat: add expire login deeplink handler
  • 953c3fd feat: add loading indicator in continue with password page
  • 7e549ad feat: replace user_id with email
  • 4f2de1c fix: invitation deeplink test

📊 Changes

14 files changed (+631 additions, -172 deletions)

View changed files

📝 frontend/appflowy_flutter/lib/startup/tasks/appflowy_cloud_task.dart (+52 -76)
frontend/appflowy_flutter/lib/startup/tasks/deeplink/deeplink_handler.dart (+94 -0)
frontend/appflowy_flutter/lib/startup/tasks/deeplink/expire_login_deeplink_handler.dart (+31 -0)
frontend/appflowy_flutter/lib/startup/tasks/deeplink/invitation_deeplink_handler.dart (+67 -0)
frontend/appflowy_flutter/lib/startup/tasks/deeplink/login_deeplink_handler.dart (+44 -0)
frontend/appflowy_flutter/lib/startup/tasks/deeplink/payment_deeplink_handler.dart (+24 -0)
📝 frontend/appflowy_flutter/lib/user/application/sign_in_bloc.dart (+11 -0)
📝 frontend/appflowy_flutter/lib/user/presentation/screens/sign_in_screen/widgets/continue_with/continue_with_password_page.dart (+70 -23)
📝 frontend/appflowy_flutter/lib/workspace/application/user/user_workspace_bloc.dart (+14 -6)
📝 frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/_sidebar_workspace_menu.dart (+1 -1)
📝 frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/sidebar_workspace.dart (+128 -43)
frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/workspace_notifier.dart (+15 -0)
📝 frontend/appflowy_flutter/macos/Podfile.lock (+23 -23)
frontend/appflowy_flutter/test/unit_test/deeplink/deeplink_test.dart (+57 -0)

📄 Description

Feature Preview

  • refactor deeplink handler to support different DeepLinkSchema
  • support workspace invitation deeplink schema

PR Checklist

  • My code adheres to AppFlowy's Conventions
  • I've listed at least one issue that this PR fixes in the description above.
  • I've added a test(s) to validate changes in this PR, or this PR only contains semantic changes.
  • All existing tests are passing.

Summary by Sourcery

Refactor the deeplink handling system to support multiple deeplink schemas with a more modular and extensible approach

New Features:

  • Add support for modular deep link handling with easy extensibility for future deep link schemas

Enhancements:

  • Introduce a flexible DeepLinkHandlerRegistry that allows registering and processing different types of deep links
  • Create an abstract DeepLinkHandler interface to standardize deep link processing
  • Separate concerns by creating specific handlers for login and payment deep links

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/AppFlowy-IO/AppFlowy/pull/7802 **Author:** [@LucasXu0](https://github.com/LucasXu0) **Created:** 4/22/2025 **Status:** ✅ Merged **Merged:** 4/24/2025 **Merged by:** [@LucasXu0](https://github.com/LucasXu0) **Base:** `main` ← **Head:** `workspace_deeplink` --- ### 📝 Commits (9) - [`ea478d5`](https://github.com/AppFlowy-IO/AppFlowy/commit/ea478d5023bee46156a691729b79a3fc15aee5e2) refactor: deeplink handler - [`a64cfce`](https://github.com/AppFlowy-IO/AppFlowy/commit/a64cfcedef4b747acdf712ed35ad3f85e64126ee) Merge branch 'main' into workspace_deeplink - [`e6e25a7`](https://github.com/AppFlowy-IO/AppFlowy/commit/e6e25a73eb11d391d6bff3512a3eab2e87ace6a7) feat: add invitation deeplink handler - [`4c55a55`](https://github.com/AppFlowy-IO/AppFlowy/commit/4c55a558661aaccca47ea3c25a0a812c7c3e0238) test: add deeplink tests - [`c8e2811`](https://github.com/AppFlowy-IO/AppFlowy/commit/c8e28111ace43850d6c15b6f489d2c29b907fe81) feat: add user_id in the invitation callback - [`da57f79`](https://github.com/AppFlowy-IO/AppFlowy/commit/da57f798920e0625e25601efb00235722e857b8b) feat: add expire login deeplink handler - [`953c3fd`](https://github.com/AppFlowy-IO/AppFlowy/commit/953c3fd736c3297228ef335eceb34208263b7263) feat: add loading indicator in continue with password page - [`7e549ad`](https://github.com/AppFlowy-IO/AppFlowy/commit/7e549ad60546b85b5088ac3a1a7b8bce128e5800) feat: replace user_id with email - [`4f2de1c`](https://github.com/AppFlowy-IO/AppFlowy/commit/4f2de1c86b564ed45fa490d66084abd9b5156dc6) fix: invitation deeplink test ### 📊 Changes **14 files changed** (+631 additions, -172 deletions) <details> <summary>View changed files</summary> 📝 `frontend/appflowy_flutter/lib/startup/tasks/appflowy_cloud_task.dart` (+52 -76) ➕ `frontend/appflowy_flutter/lib/startup/tasks/deeplink/deeplink_handler.dart` (+94 -0) ➕ `frontend/appflowy_flutter/lib/startup/tasks/deeplink/expire_login_deeplink_handler.dart` (+31 -0) ➕ `frontend/appflowy_flutter/lib/startup/tasks/deeplink/invitation_deeplink_handler.dart` (+67 -0) ➕ `frontend/appflowy_flutter/lib/startup/tasks/deeplink/login_deeplink_handler.dart` (+44 -0) ➕ `frontend/appflowy_flutter/lib/startup/tasks/deeplink/payment_deeplink_handler.dart` (+24 -0) 📝 `frontend/appflowy_flutter/lib/user/application/sign_in_bloc.dart` (+11 -0) 📝 `frontend/appflowy_flutter/lib/user/presentation/screens/sign_in_screen/widgets/continue_with/continue_with_password_page.dart` (+70 -23) 📝 `frontend/appflowy_flutter/lib/workspace/application/user/user_workspace_bloc.dart` (+14 -6) 📝 `frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/_sidebar_workspace_menu.dart` (+1 -1) 📝 `frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/sidebar_workspace.dart` (+128 -43) ➕ `frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/workspace/workspace_notifier.dart` (+15 -0) 📝 `frontend/appflowy_flutter/macos/Podfile.lock` (+23 -23) ➕ `frontend/appflowy_flutter/test/unit_test/deeplink/deeplink_test.dart` (+57 -0) </details> ### 📄 Description <!--- Thank you for submitting a pull request to AppFlowy. The team will dedicate their best efforts to reviewing and approving your pull request. If you have any questions about the project or feedback for us, please join our [Discord](https://discord.gg/wdjWUXXhtw). --> <!--- If your pull request adds a new feature, please drag and drop a video into this section to showcase what you've done! If not, you may delete this section. --> ### Feature Preview - [x] refactor deeplink handler to support different DeepLinkSchema - [x] support workspace invitation deeplink schema <!--- List at least one issue here that this PR addresses. If it fixes the issue, please use the [fixes](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests) keyword to close the issue. For example: fixes https://github.com/AppFlowy-IO/AppFlowy/pull/2106 --> --- <!--- Before you mark this PR ready for review, run through this checklist! --> #### PR Checklist - [x] My code adheres to [AppFlowy's Conventions](https://docs.appflowy.io/docs/documentation/software-contributions/conventions) - [x] I've listed at least one issue that this PR fixes in the description above. - [x] I've added a test(s) to validate changes in this PR, or this PR only contains semantic changes. - [x] All existing tests are passing. ## Summary by Sourcery Refactor the deeplink handling system to support multiple deeplink schemas with a more modular and extensible approach New Features: - Add support for modular deep link handling with easy extensibility for future deep link schemas Enhancements: - Introduce a flexible DeepLinkHandlerRegistry that allows registering and processing different types of deep links - Create an abstract DeepLinkHandler interface to standardize deep link processing - Separate concerns by creating specific handlers for login and payment deep links --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
mirror 2026-03-23 23:22:42 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
AppFlowy-IO/AppFlowy#8123
No description provided.