[PR #3237] [CLOSED] feat: Support Panes for AppFlowy #5637

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

📋 Pull Request Information

Original PR: https://github.com/AppFlowy-IO/AppFlowy/pull/3237
Author: @squidrye
Created: 8/18/2023
Status: Closed

Base: mainHead: feat-panes-2312


📝 Commits (10+)

📊 Changes

23 files changed (+806 additions, -172 deletions)

View changed files

📝 frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/built_in_page_widget.dart (+4 -6)
📝 frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mention/mention_page_block.dart (+4 -6)
📝 frontend/appflowy_flutter/lib/plugins/trash/menu.dart (+3 -5)
📝 frontend/appflowy_flutter/lib/startup/deps_resolver.dart (+12 -9)
frontend/appflowy_flutter/lib/workspace/application/panes/panes.dart (+60 -0)
frontend/appflowy_flutter/lib/workspace/application/panes/panes_cubit/panes_cubit.dart (+108 -0)
frontend/appflowy_flutter/lib/workspace/application/panes/panes_cubit/panes_state.dart (+42 -0)
frontend/appflowy_flutter/lib/workspace/application/panes/panes_service.dart (+134 -0)
frontend/appflowy_flutter/lib/workspace/application/panes/size_cubit/cubit/pane_size_cubit.dart (+25 -0)
frontend/appflowy_flutter/lib/workspace/application/panes/size_cubit/cubit/pane_size_state.dart (+30 -0)
frontend/appflowy_flutter/lib/workspace/application/tabs/tabs.dart (+83 -0)
📝 frontend/appflowy_flutter/lib/workspace/presentation/home/home_screen.dart (+14 -22)
📝 frontend/appflowy_flutter/lib/workspace/presentation/home/home_stack.dart (+151 -29)
📝 frontend/appflowy_flutter/lib/workspace/presentation/home/hotkeys.dart (+7 -5)
📝 frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/favorite_folder.dart (+11 -5)
📝 frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/personal_folder.dart (+11 -5)
📝 frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar.dart (+3 -4)
📝 frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_trash.dart (+3 -6)
📝 frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_action_type.dart (+11 -0)
📝 frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_item.dart (+16 -4)

...and 3 more files

📄 Description

Feature Preview

https://github.com/AppFlowy-IO/AppFlowy/assets/84044317/152fddd2-3948-4bfa-b3b5-2fc90fde8bd5


#2312 This PR targets implementation of multi-panes
cc @Xazin

PR Checklist

  • My code adheres to the AppFlowy Style Guide
  • 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.

Todos

  • Decide and implement data structure for panes
  • Map n-ary tree to bloc for state management, allow opening and closing of panes
  • Refactor existing tabs implementation to each pane node
  • Link each pane to correct plugin and view
  • Resizable panes
  • Setup drag and drop for tabs
  • Setup drag and drop for panes
  • Allow horizontal/ vertical scroll for stacked panes based on visible viewport
  • Stack panes over another (Sliding panes)
  • Refactor other features which might break due to this (Mostly scroll related issues)
  • Might need a better design spec for tab-bar, with/without tabs
  • Tests

🔄 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/3237 **Author:** [@squidrye](https://github.com/squidrye) **Created:** 8/18/2023 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feat-panes-2312` --- ### 📝 Commits (10+) - [`76bf6cf`](https://github.com/AppFlowy-IO/AppFlowy/commit/76bf6cfd249d801f825a95b159597972a15af116) feat: added handlers for panes - [`d33456a`](https://github.com/AppFlowy-IO/AppFlowy/commit/d33456a6e2e269aece1aeba006a5505b6bc8a8c7) feat: added model for panes - [`8ca1baa`](https://github.com/AppFlowy-IO/AppFlowy/commit/8ca1baa1b1c4db41e73a8736b057748eb3895337) feat: added state managers for panes - [`54ea96f`](https://github.com/AppFlowy-IO/AppFlowy/commit/54ea96f516a45f4ce9e4ce5fb7ed6475160c956c) feat: implemented recursive build for homestack panes - [`12175da`](https://github.com/AppFlowy-IO/AppFlowy/commit/12175daced0b32a50cedb9ea519a5420864b189d) feat: added temporary splitRight and splitDown to view menu - [`8cf5b13`](https://github.com/AppFlowy-IO/AppFlowy/commit/8cf5b1309774b5a7d2897d77629494cd76c77281) Merge branch 'main' of https://github.com/AppFlowy-IO/AppFlowy into feat-panes-2312 - [`831b18e`](https://github.com/AppFlowy-IO/AppFlowy/commit/831b18ee18b44e6cee67a06db8607bfd28693708) feat: delegated tabs logic to active pane - [`df9c933`](https://github.com/AppFlowy-IO/AppFlowy/commit/df9c9334f7f887c0c4c9bfe0f57afca3b5891da3) refactor: converted panes handler into single service - [`bf8d37f`](https://github.com/AppFlowy-IO/AppFlowy/commit/bf8d37fef2e2eda97e6ce30ca5382b2641fae0ab) feat: added panes bloc - [`1ba3c1e`](https://github.com/AppFlowy-IO/AppFlowy/commit/1ba3c1e17eeb6ddf9d6bb52ac9d02290b7ba0f94) Merge branch 'main' of https://github.com/AppFlowy-IO/AppFlowy into feat-panes-2312 ### 📊 Changes **23 files changed** (+806 additions, -172 deletions) <details> <summary>View changed files</summary> 📝 `frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/built_in_page_widget.dart` (+4 -6) 📝 `frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mention/mention_page_block.dart` (+4 -6) 📝 `frontend/appflowy_flutter/lib/plugins/trash/menu.dart` (+3 -5) 📝 `frontend/appflowy_flutter/lib/startup/deps_resolver.dart` (+12 -9) ➕ `frontend/appflowy_flutter/lib/workspace/application/panes/panes.dart` (+60 -0) ➕ `frontend/appflowy_flutter/lib/workspace/application/panes/panes_cubit/panes_cubit.dart` (+108 -0) ➕ `frontend/appflowy_flutter/lib/workspace/application/panes/panes_cubit/panes_state.dart` (+42 -0) ➕ `frontend/appflowy_flutter/lib/workspace/application/panes/panes_service.dart` (+134 -0) ➕ `frontend/appflowy_flutter/lib/workspace/application/panes/size_cubit/cubit/pane_size_cubit.dart` (+25 -0) ➕ `frontend/appflowy_flutter/lib/workspace/application/panes/size_cubit/cubit/pane_size_state.dart` (+30 -0) ➕ `frontend/appflowy_flutter/lib/workspace/application/tabs/tabs.dart` (+83 -0) 📝 `frontend/appflowy_flutter/lib/workspace/presentation/home/home_screen.dart` (+14 -22) 📝 `frontend/appflowy_flutter/lib/workspace/presentation/home/home_stack.dart` (+151 -29) 📝 `frontend/appflowy_flutter/lib/workspace/presentation/home/hotkeys.dart` (+7 -5) 📝 `frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/favorite_folder.dart` (+11 -5) 📝 `frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/personal_folder.dart` (+11 -5) 📝 `frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar.dart` (+3 -4) 📝 `frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_trash.dart` (+3 -6) 📝 `frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_action_type.dart` (+11 -0) 📝 `frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_item.dart` (+16 -4) _...and 3 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 https://github.com/AppFlowy-IO/AppFlowy/assets/84044317/152fddd2-3948-4bfa-b3b5-2fc90fde8bd5 <!--- 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 --> --- #2312 This PR targets implementation of multi-panes cc @Xazin <!--- Before you mark this PR ready for review, run through this checklist! --> #### PR Checklist - [x] My code adheres to the [AppFlowy Style Guide](https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/software-contributions/submitting-code/style-guides) - [x] 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. #### Todos - [x] Decide and implement data structure for panes - [x] Map n-ary tree to bloc for state management, allow opening and closing of panes - [x] Refactor existing tabs implementation to each pane node - [x] Link each pane to correct plugin and view - [x] Resizable panes - [ ] Setup drag and drop for tabs - [ ] Setup drag and drop for panes - [ ] Allow horizontal/ vertical scroll for stacked panes based on visible viewport - [x] Stack panes over another (Sliding panes) - [ ] Refactor other features which might break due to this (Mostly scroll related issues) - [ ] Might need a better design spec for tab-bar, with/without tabs - [ ] Tests --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
mirror 2026-03-23 22:19:37 +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#5637
No description provided.