Skip to content
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

msglist: In single-conversation view, make recipient headers not tappable. #1193

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

lakshya1goel
Copy link

Pull Request Description

Summary
This PR updates the behavior of recipient headers in the single-conversation view to make them non-tappable.

Related Issue: #1171

Changes:

Adjusted GestureDetector logic:
Updated the logic to conditionally enable navigation only when relevant.

Simplified ColoredBox structure:
Streamlined the layout for non-tappable headers to ensure consistent behavior and appearance.

Video Demonstration:

WhatsApp.Video.2024-12-20.at.10.39.41.PM.mp4

Copy link
Collaborator

@chrisbobbe chrisbobbe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! It needs tests, and the commit message should say "Fixes" with the issue number. Also see two substantive comments below.

lib/widgets/message_list.dart Outdated Show resolved Hide resolved
lib/widgets/message_list.dart Outdated Show resolved Hide resolved
@lakshya1goel lakshya1goel force-pushed the issue1171 branch 2 times, most recently from 59f7f42 to eb6a565 Compare December 21, 2024 10:13
@lakshya1goel
Copy link
Author

@chrisbobbe Please have a look on the changes now. Added tests as well. But getting the CI/check fails, showing

Failed to download https://storage.googleapis.com/flutter_infra_release/flutter/7df127b1ee7d52c4cb0d42eedd00190e2c4ade3d/flutter_patched_sdk_product.zip. Ensure you have network connectivity and then try again.
Exception: 404
Error: Process completed with exit code 1.

Please let me know how can I fix them, as I have the good internet connectivity still getting this.

@lakshya1goel
Copy link
Author

@chrisbobbe , the checks have also been fixed now. Please review it once.
Thanks!

@gnprice gnprice added the maintainer review PR ready for review by Zulip maintainers label Dec 23, 2024
Copy link
Collaborator

@chrisbobbe chrisbobbe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Small comments below.

Also a commit-message nit:

msglist: In single-conversation view, make recipient headers not tappable.

Updated onTap for recipient headers in single-conversation view.
Adjusted GestureDetector logic to conditionally enable navigation.
Simplified ColoredBox structure for non-tappable recipient headers.
Improves user experience by removing unnecessary tap interactions.

Fixes: #1171

The paragraph isn't needed; it doesn't add anything that isn't already easy to see from the code change, or implied by the Fixes: #1171 line.

lib/widgets/message_list.dart Outdated Show resolved Hide resolved
lib/widgets/message_list.dart Outdated Show resolved Hide resolved
lib/widgets/message_list.dart Outdated Show resolved Hide resolved
lib/widgets/message_list.dart Outdated Show resolved Hide resolved
lib/widgets/message_list.dart Outdated Show resolved Hide resolved
@lakshya1goel
Copy link
Author

Hello, @chrisbobbe I have done the requested changes. Please have a look on them.
Thanks!

Copy link
Collaborator

@chrisbobbe chrisbobbe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Small comments below.

Comment on lines +1111 to +1113
onTap: !inTopicNarrow ? () => Navigator.push(context,
MessageListPage.buildRoute(context: context,
narrow: TopicNarrow.ofMessage(message))),
narrow: TopicNarrow.ofMessage(message))) : null,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's put the "?" and ":" at the start of new lines:

onTap: !inTopicNarrow
  ? /* … */
  : /* … */

to make it easier to read. (Here and below.)

@@ -922,6 +922,37 @@ void main() {
await tester.pump();
tester.widget(find.text('new stream name'));
});

testWidgets('does not navigate on tapping topic in TopicNarrow', (tester) async {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please also add a test before this, if there isn't one already, that it does navigate if you tap the header in an interleaved view (i.e. a channel narrow or the combined feed, not a topic narrow), to check that the implementation doesn't accidentally remove the tap-to-navigate interaction there.

Similarly for the DM-message case, below. (DMs can appear in the combined feed.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintainer review PR ready for review by Zulip maintainers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants