-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Support drawer menus opening as overlay instead of pushing content in ios #7986
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
… ios (#7984) * add example in playground and some animations changes with Yogi * fix drag animations (open+close) in left drawer and add overlay on center * support all features in right drawer * supoprt both old and new opening mode using openAboveScreen param * connect the new parameter to rnn platform * update param from boolean to enum * clean * install * update lock * fix unit
0a1937a
to
f1d3449
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces overlay mode for side drawer menus on iOS, allowing the drawer to open above the content rather than pushing it.
- Added new test IDs for left and right menus.
- Added new functions and UI buttons in SetRootScreen to configure left and right menus with overlay behavior.
- Updated the Options interface to support the new openMode property.
Reviewed Changes
Copilot reviewed 5 out of 10 changed files in this pull request and generated no comments.
File | Description |
---|---|
playground/src/testIDs.ts | Added new test IDs for the left and right side menus. |
playground/src/screens/SetRootScreen.tsx | Added buttons and functions to configure side menus in overlay mode for iOS. |
lib/src/interfaces/Options.ts | Extended the Options interface with an openMode property for side menus. |
Files not reviewed (5)
- lib/ios/RNNSideMenu/MMDrawerController/MMDrawerController.h: Language not supported
- lib/ios/RNNSideMenuPresenter.m: Language not supported
- lib/ios/RNNSideMenuSideOptions.h: Language not supported
- lib/ios/RNNSideMenuSideOptions.m: Language not supported
- playground/ios/NavigationTests/RNNSideMenuPresenterTest.m: Language not supported
Comments suppressed due to low confidence (2)
playground/src/screens/SetRootScreen.tsx:336
- [nitpick] The component id 'sideMenu' is used for the left menu configuration; consider renaming it to 'leftSideMenu' for clarity and to avoid confusion with the right menu configuration.
id: 'sideMenu',
playground/src/screens/SetRootScreen.tsx:376
- [nitpick] The component id 'sideMenu' is used for the right menu configuration; consider renaming it to 'rightSideMenu' for clearer distinction between the left and right menus.
id: 'sideMenu',
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Impressive overall, but needs to be seriously improved before we can merge this in. Please see notes 🙏🏻
f1d3449
to
4803f82
Compare
#rebuild |
[self sideDrawerViewControllerForSide:self.openSide]; | ||
[sideDrawerViewController beginAppearanceTransition:NO animated:NO]; | ||
[sideDrawerViewController endAppearanceTransition]; | ||
if (openMode == MMDrawerOpenModeAboveContent) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
... Same here. The change here is massive, you need to find a way to elegantly extract this massive amount of logic onto several sub-methods. Also, please minimize the extra-comments = fluff 😄
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ive split panGestureCallback
method into small methods, you can see this commit
🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @liatnetach, some further discussion - above. Still a lot to be done but please keep up the good work. It's mainly about:
- Getting the side-menu thoroughly tested in the SideMenu's suite (not the SetRoot one) - "full matrix" (all tests for both modes)
- Massively cleaning up and reorg'ing the work in panGestureCallback
- Fix an odd bug - the drawer disappears unexpectedly when panning out
Simulator.Screen.Recording.-.iPhone.13.Pro.Max.-.2025-05-13.at.13.30.11.mp4
Hey @d4vidi 🙂 |
#rebuild |
…n drawer in above content mode
…native-navigation into support-drawer-menu-open-mode
This PR adds the ability to configure how side drawer menus open, introducing an overlay mode in addition to the traditional push-content behavior.
NOTE: Work on this has succeeded in #8039