Refactor back block handling in CommonScaffold to simplify dispose logic and improve readability#1650
Open
Platohykj wants to merge 1 commit intochen08209:mainfrom
Open
Refactor back block handling in CommonScaffold to simplify dispose logic and improve readability#1650Platohykj wants to merge 1 commit intochen08209:mainfrom
Platohykj wants to merge 1 commit intochen08209:mainfrom
Conversation
…gic and improve readability
There was a problem hiding this comment.
Pull request overview
This PR refactors back button handling in CommonScaffold to fix issue #1620 by distinguishing between edit and search modes. The key improvement ensures the system back button is only blocked during edit mode (to prevent accidental data loss), while allowing normal back button behavior during search mode for better user experience.
Key Changes:
- Modified
_buildAppBarWrapto conditionally applySystemBackBlockonly in edit mode, not search mode - Simplified the dispose method in
_SystemBackBlockStateto call cleanup directly beforesuper.dispose()instead of using an unnecessary post-frame callback
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| lib/widgets/scaffold.dart | Refactored _buildAppBarWrap to wrap the app bar with SystemBackBlock only when in edit mode, allowing the system back button to function normally during search mode while maintaining the CommonPopScope wrapper for both modes |
| lib/widgets/pop_scope.dart | Improved the dispose method by calling unBackBlock() directly before super.dispose() instead of scheduling it in a post-frame callback, ensuring proper and immediate cleanup |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix issue #1620
This pull request refines how the system back button is handled in the app bar, especially distinguishing between edit and search modes. The main improvement ensures that the system back button is only blocked during edit mode, not search mode, leading to a more intuitive user experience.
Back button handling improvements:
_buildAppBarWrapinCommonScaffoldStateso thatSystemBackBlockis only applied during edit mode, allowing the system back button to function normally during search mode. (lib/widgets/scaffold.dart) [1] [2]disposemethod in_SystemBackBlockStateto immediately callunBackBlockbeforesuper.dispose(), ensuring proper cleanup without unnecessary post-frame callbacks. (lib/widgets/pop_scope.dart)