[PR #8071] [MERGED] feat: mention a person [only for testing] #8290

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

📋 Pull Request Information

Original PR: https://github.com/AppFlowy-IO/AppFlowy/pull/8071
Author: @asjqkkkk
Created: 6/17/2025
Status: Merged
Merged: 6/17/2025
Merged by: @asjqkkkk

Base: feat/mention_a_personHead: feat/desktop/mention


📝 Commits (10+)

  • e65bda7 fix: @ menu position error
  • 80cbc15 feat: add titleTrailing in AFMenuSection
  • 56d4c45 feat: add mention menu
  • 683be82 Merge branch 'main' into feat/desktop/mention
  • ee0e15f Merge branch 'main' into feat/desktop/mention
  • b463ba3 feat: add mention menu
  • 86bf0c7 Merge branch 'main' into feat/desktop/mention
  • 5fc2dc6 fix: complete the logic of selecting item by arrow key
  • f244acf fix: add filter for mention menu
  • 7c46ad7 chore: format codes

📊 Changes

83 files changed (+5257 additions, -361 deletions)

View changed files

📝 frontend/appflowy_flutter/integration_test/desktop/document/document_inline_page_reference_test.dart (+10 -2)
📝 frontend/appflowy_flutter/integration_test/shared/document_test_operations.dart (+2 -2)
📝 frontend/appflowy_flutter/lib/core/config/kv.dart (+15 -0)
📝 frontend/appflowy_flutter/lib/core/config/kv_keys.dart (+5 -0)
frontend/appflowy_flutter/lib/features/mension_person/data/cache/person_list_cache.dart (+24 -0)
frontend/appflowy_flutter/lib/features/mension_person/data/models/invite.dart (+48 -0)
frontend/appflowy_flutter/lib/features/mension_person/data/models/mention_menu_item.dart (+43 -0)
frontend/appflowy_flutter/lib/features/mension_person/data/models/models.dart (+3 -0)
frontend/appflowy_flutter/lib/features/mension_person/data/models/person.dart (+34 -0)
frontend/appflowy_flutter/lib/features/mension_person/data/repositories/mention_repository.dart (+23 -0)
frontend/appflowy_flutter/lib/features/mension_person/data/repositories/mock_mention_repository.dart (+139 -0)
frontend/appflowy_flutter/lib/features/mension_person/logic/mention_bloc.dart (+170 -0)
frontend/appflowy_flutter/lib/features/mension_person/logic/person_bloc.dart (+79 -0)
frontend/appflowy_flutter/lib/features/mension_person/presentation/mention_menu.dart (+104 -0)
frontend/appflowy_flutter/lib/features/mension_person/presentation/mention_menu_service.dart (+201 -0)
frontend/appflowy_flutter/lib/features/mension_person/presentation/menu_extension.dart (+12 -0)
frontend/appflowy_flutter/lib/features/mension_person/presentation/mobile_mention_menu_service.dart (+173 -0)
frontend/appflowy_flutter/lib/features/mension_person/presentation/widgets/date_reminder_list.dart (+149 -0)
frontend/appflowy_flutter/lib/features/mension_person/presentation/widgets/hover_menu.dart (+140 -0)
frontend/appflowy_flutter/lib/features/mension_person/presentation/widgets/invite/contact_detail_menu.dart (+236 -0)

...and 63 more files

📄 Description

Feature Preview


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

Introduce person mentioning functionality and refine inline actions framework

New Features:

  • Enable @person mentions with profile popover and mobile support
  • Add invite and contact detail menus for mentioning new persons
  • Persist send-notification preference in "@" mention menu

Enhancements:

  • Refactor inline action insert handlers into EditorState extensions
  • Unify menu positioning logic into calculateSelectionMenuOffset
  • Extend UI components with customizable builders and new properties (AFDropDownMenu, AFMenuSection, AFOutlinedButton, AFTextField)
  • Simplify no-results handling via context extension
  • Migrate inline actions mobile and desktop menus to unified MentionMenuService architecture

Tests:

  • Adjust integration and widget tests to support new mention menu interactions
  • Add bloc tests for mention feature

🔄 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/8071 **Author:** [@asjqkkkk](https://github.com/asjqkkkk) **Created:** 6/17/2025 **Status:** ✅ Merged **Merged:** 6/17/2025 **Merged by:** [@asjqkkkk](https://github.com/asjqkkkk) **Base:** `feat/mention_a_person` ← **Head:** `feat/desktop/mention` --- ### 📝 Commits (10+) - [`e65bda7`](https://github.com/AppFlowy-IO/AppFlowy/commit/e65bda72cbfe638c027d466c8387c7852222fbd2) fix: @ menu position error - [`80cbc15`](https://github.com/AppFlowy-IO/AppFlowy/commit/80cbc159bf18a0a4fadb2ef383e9185acb7eecd1) feat: add titleTrailing in AFMenuSection - [`56d4c45`](https://github.com/AppFlowy-IO/AppFlowy/commit/56d4c45d67957b98dca180cb704d647c8fdadd29) feat: add mention menu - [`683be82`](https://github.com/AppFlowy-IO/AppFlowy/commit/683be82210f12b990b9308a825699dd4868ddb5f) Merge branch 'main' into feat/desktop/mention - [`ee0e15f`](https://github.com/AppFlowy-IO/AppFlowy/commit/ee0e15f394a430fdbb4d9463d4b100707bd22d8b) Merge branch 'main' into feat/desktop/mention - [`b463ba3`](https://github.com/AppFlowy-IO/AppFlowy/commit/b463ba36944300b798c3104a192cebf44d0787a9) feat: add mention menu - [`86bf0c7`](https://github.com/AppFlowy-IO/AppFlowy/commit/86bf0c7b0ab00c4815537fa363c9c6de26787227) Merge branch 'main' into feat/desktop/mention - [`5fc2dc6`](https://github.com/AppFlowy-IO/AppFlowy/commit/5fc2dc6ceebf879d3a54258be711a3892c61e332) fix: complete the logic of selecting item by arrow key - [`f244acf`](https://github.com/AppFlowy-IO/AppFlowy/commit/f244acf44e7e40b6b0eb390bfb0bb4ed334cd374) fix: add filter for mention menu - [`7c46ad7`](https://github.com/AppFlowy-IO/AppFlowy/commit/7c46ad71d481c657ec53e26445f812da6c67f95f) chore: format codes ### 📊 Changes **83 files changed** (+5257 additions, -361 deletions) <details> <summary>View changed files</summary> 📝 `frontend/appflowy_flutter/integration_test/desktop/document/document_inline_page_reference_test.dart` (+10 -2) 📝 `frontend/appflowy_flutter/integration_test/shared/document_test_operations.dart` (+2 -2) 📝 `frontend/appflowy_flutter/lib/core/config/kv.dart` (+15 -0) 📝 `frontend/appflowy_flutter/lib/core/config/kv_keys.dart` (+5 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/data/cache/person_list_cache.dart` (+24 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/data/models/invite.dart` (+48 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/data/models/mention_menu_item.dart` (+43 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/data/models/models.dart` (+3 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/data/models/person.dart` (+34 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/data/repositories/mention_repository.dart` (+23 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/data/repositories/mock_mention_repository.dart` (+139 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/logic/mention_bloc.dart` (+170 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/logic/person_bloc.dart` (+79 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/presentation/mention_menu.dart` (+104 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/presentation/mention_menu_service.dart` (+201 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/presentation/menu_extension.dart` (+12 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/presentation/mobile_mention_menu_service.dart` (+173 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/presentation/widgets/date_reminder_list.dart` (+149 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/presentation/widgets/hover_menu.dart` (+140 -0) ➕ `frontend/appflowy_flutter/lib/features/mension_person/presentation/widgets/invite/contact_detail_menu.dart` (+236 -0) _...and 63 more files_ </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 <!--- 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 - [ ] My code adheres to [AppFlowy's Conventions](https://docs.appflowy.io/docs/documentation/software-contributions/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 Introduce person mentioning functionality and refine inline actions framework New Features: - Enable @person mentions with profile popover and mobile support - Add invite and contact detail menus for mentioning new persons - Persist send-notification preference in "@" mention menu Enhancements: - Refactor inline action insert handlers into EditorState extensions - Unify menu positioning logic into calculateSelectionMenuOffset - Extend UI components with customizable builders and new properties (AFDropDownMenu, AFMenuSection, AFOutlinedButton, AFTextField) - Simplify no-results handling via context extension - Migrate inline actions mobile and desktop menus to unified MentionMenuService architecture Tests: - Adjust integration and widget tests to support new mention menu interactions - Add bloc tests for mention feature --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
mirror 2026-03-23 23:23:30 +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#8290
No description provided.