Skip to content

Experiment with CupertinoContextMenu #62

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

Closed
gnprice opened this issue Apr 13, 2023 · 4 comments
Closed

Experiment with CupertinoContextMenu #62

gnprice opened this issue Apr 13, 2023 · 4 comments
Labels
a-design Visual and UX design a-iOS Issues specific to iOS, or requiring iOS-specific work

Comments

@gnprice
Copy link
Member

gnprice commented Apr 13, 2023

In iOS there's a UI element called a "context menu", which one gets when long-pressing something, and provides access to things you can do with the thing pressed.

It'd be neat to use something like this in place of our action sheets, at least on iOS.

Previously we've discussed trying to do something in this direction in the zulip-mobile React Native app. The options for doing so on RN are not great, especially if one wants to do it on Android as well as iOS. Instead, what we currently do in the RN app is that on iOS we have a native action sheet, and on Android we have a less-slick custom action sheet provided by a third-party library.

Flutter has a CupertinoContextMenu widget which aims to provide this feature, so we could use that. More about that widget:

@gnprice
Copy link
Member Author

gnprice commented Apr 17, 2023

Like Flutter's "Cupertino" widgets in general, this CupertinoContextMenu widget should function just as well on Android (or other platforms) as it does on iOS, so we'd have the option to use it everywhere.

I suspect that it'd feel out of place for Android users, and that on Android we'll want to stick with a bottom sheet, which is what zulip-flutter currently uses on all platforms. But that's a design choice we can make once we see it in action.

This issue is for experimenting with CupertinoContextMenu primarily on iOS.

@terpimost
Copy link

For me context menu in Android world is https://m3.material.io/components/menus/overview

If we are going to use bottom sheet I would rather work on that and polish such implementation than polishing both approaches.

Here is the example how we could convert iOS menu to bottom sheet.
image
image

Later we could figure out if a small interactive tooltip could be used to improve UX for emoji or something like this:
image

@gnprice
Copy link
Member Author

gnprice commented Apr 19, 2023

For me context menu in Android world is https://m3.material.io/components/menus/overview

Yeah. I agree with that terminology, but it feels to me like quite a different kind of UI from the Apple "context menu".

In particular the Apple "context menu" would be an appropriate fit for the UI to present when the user long-presses a message, with a design just like in your first screenshot above. But I think the Material "menu" would not be a good fit for that, whereas the Material "bottom sheet" (which is what we currently have in the zulip-flutter prototype, and is basically the same concept as the "action sheet" we have in the zulip-mobile RN app) is a good fit there.

If we are going to use bottom sheet I would rather work on that and polish such implementation than polishing both approaches.

Sure, sounds good.

In that case, perhaps let's close this issue, and open a new one for adjusting the design of the bottom sheet to correspond to your second screenshot above.

@gnprice
Copy link
Member Author

gnprice commented May 12, 2023

Filed #90 for that design change.

@gnprice gnprice closed this as completed May 12, 2023
@gnprice gnprice added the a-iOS Issues specific to iOS, or requiring iOS-specific work label May 27, 2023
@gnprice gnprice added the a-design Visual and UX design label Jun 14, 2023
@gnprice gnprice moved this to Done in Flutter app Sep 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a-design Visual and UX design a-iOS Issues specific to iOS, or requiring iOS-specific work
Projects
Status: Done
Development

No branches or pull requests

2 participants