Skip to content

inbox: On collapsing a section from its sticky header, auto-scroll as needed to put the collapsed header in view #391

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
chrisbobbe opened this issue Nov 18, 2023 · 2 comments · Fixed by #560
Assignees
Labels
a-home The home screens of the app; finding and starting conversations

Comments

@chrisbobbe
Copy link
Collaborator

In the inbox, if you've scrolled down several screenfuls through a section (either the all-DMs section or a stream section), you can still collapse the section by tapping the collapse icon on the stream header.

But when you do that, something confusing happens: everything that was below the last item in the section (which may or may not be onscreen) gets shifted upward by the whole vertical space that used to be occupied by the section. Since you'd been scrolling so much, the shift ends up putting some content offscreen in the upward direction. That's confusing because you might have been interested in that content, and skipping over it wasn't part of your intention when you collapsed a section that was unrelated to the content.

In this screen recording, the scenario happens multiple times in a row, with #issues, #design, and then #development help taking its turn to be the section that's partly scrolled through, and getting its sticky header tapped to collapse it.

Nov-17-2023 23-52-59

I think the confusion would disappear if, when you press the sticky-header's collapse icon, we ensure that the collapsed header (the one that always moves, not the sticky one) is entirely visible on the screen, by changing the scroll position. We can try using something like Scrollable.ensureVisible for that. That way you can see that the section was collapsed, as intended, and the start of the next section is immediately below it and easy to start reading.

@chrisbobbe chrisbobbe added this to the Beta 2 milestone Nov 18, 2023
@gnprice gnprice added the a-home The home screens of the app; finding and starting conversations label Nov 20, 2023
@sm-sayedi
Copy link
Collaborator

I would like to work on this issue.

So far, I have partially solved it as below:

@gnprice
Copy link
Member

gnprice commented Mar 9, 2024

@sm-sayedi Sure — please send along your code for this as a PR and we'll be glad to take a look. From what I see in your screencast, the behavior looks like what we want.

sm-sayedi added a commit to sm-sayedi/zulip-flutter that referenced this issue Mar 11, 2024
Before this fix, when scrolled down through the inbox page, collapsing a
stream section through the stream sticky header would work but cause an
abnormal behavior, pushing the current stream header and some of the
following stream sections off the screen by the amount of space this
stream section was scrolled.

After this fix, collapsing a stream section either through a sticky
header or a normal header would work as expected, without pushing the
header and the following stream sections off the screen.

Fixes: zulip#391.
sm-sayedi added a commit to sm-sayedi/zulip-flutter that referenced this issue Mar 12, 2024
Before this fix, when scrolled down through the inbox page, collapsing a
stream section through the stream sticky header would work but cause an
abnormal behavior, pushing the current stream header and some of the
following stream sections off the screen by the amount of space this
stream section was scrolled.

After this fix, collapsing a stream section either through a sticky
header or a normal header would work as expected, without pushing the
header and the following stream sections off the screen.

Fixes: zulip#391.
sm-sayedi added a commit to sm-sayedi/zulip-flutter that referenced this issue Mar 12, 2024
Before this fix, when scrolled down through the inbox page, collapsing a
stream section through the stream sticky header would work but cause an
abnormal behavior, pushing the current stream header and some of the
following stream sections off the screen by the amount of space this
stream section was scrolled.

After this fix, collapsing a stream section either through a sticky
header or a normal header would work as expected, without pushing the
header and the following stream sections off the screen.

Fixes: zulip#391.
sm-sayedi added a commit to sm-sayedi/zulip-flutter that referenced this issue Mar 13, 2024
Before this fix, when scrolled down through the inbox page, collapsing a
section (either the all-DMs section or a stream section) through its
sticky header would work but cause an abnormal behavior, pushing the
current section header and some of the following sections off the screen
by the amount of space the current section occupied.

After this fix, collapsing a section through a sticky header would work
as expected, without pushing the header and the following sections off
the screen.

Fixes: zulip#391.
sm-sayedi added a commit to sm-sayedi/zulip-flutter that referenced this issue Mar 13, 2024
Before this fix, when scrolled down through the inbox page, collapsing a
section (either the all-DMs section or a stream section) through its
sticky header would work but cause an abnormal behavior, pushing the
current section header and some of the following sections off the screen
by the amount of space the current section occupied.

After this fix, collapsing a section through a sticky header would work
as expected, without pushing the header and the following sections off
the screen.

Fixes: zulip#391.
sm-sayedi added a commit to sm-sayedi/zulip-flutter that referenced this issue Mar 21, 2024
Before this fix, when scrolled down through the inbox page, collapsing a
section (either the all-DMs section or a stream section) through its
sticky header would work but cause an abnormal behavior, pushing the
current section header and some of the following sections off the screen
by the amount of space the current section occupied.

After this fix, collapsing a section through a sticky header would work
as expected, without pushing the header and the following sections off
the screen.

Fixes: zulip#391
sm-sayedi added a commit to sm-sayedi/zulip-flutter that referenced this issue Mar 22, 2024
Before this fix, when scrolled down through the inbox page, collapsing a
section (either the all-DMs section or a stream section) through its
sticky header would work but cause an abnormal behavior, pushing the
current section header and some of the following sections off the screen
by the amount of space the current section occupied.

After this fix, collapsing a section through a sticky header would work
as expected, without pushing the header and the following sections off
the screen.

Fixes: zulip#391
sm-sayedi added a commit to sm-sayedi/zulip-flutter that referenced this issue Mar 22, 2024
Before this fix, when scrolled down through the inbox page, collapsing a
section (either the all-DMs section or a stream section) through its
sticky header would work but cause an abnormal behavior, pushing the
current section header and some of the following sections off the screen
by the amount of space the current section occupied.

After this fix, collapsing a section through a sticky header would work
as expected, without pushing the header and the following sections off
the screen.

Fixes: zulip#391
sm-sayedi added a commit to sm-sayedi/zulip-flutter that referenced this issue Mar 22, 2024
Before this fix, when scrolled down through the inbox page, collapsing a
section (either the all-DMs section or a stream section) through its
sticky header would work but cause an abnormal behavior, pushing the
current section header and some of the following sections off the screen
by the amount of space the current section occupied.

After this fix, collapsing a section through a sticky header would work
as expected, without pushing the header and the following sections off
the screen.

Fixes: zulip#391
sm-sayedi added a commit to sm-sayedi/zulip-flutter that referenced this issue Mar 23, 2024
Before this fix, when scrolled down through the inbox page, collapsing a
section (either the all-DMs section or a stream section) through its
sticky header would work but cause an abnormal behavior, pushing the
current section header and some of the following sections off the screen
by the amount of space the current section occupied.

After this fix, collapsing a section through a sticky header would work
as expected, without pushing the header and the following sections off
the screen.

Fixes: zulip#391
sm-sayedi added a commit to sm-sayedi/zulip-flutter that referenced this issue Mar 23, 2024
Before this fix, when scrolled down through the inbox page, collapsing a
section (either the all-DMs section or a stream section) through its
sticky header would work but cause an abnormal behavior, pushing the
current section header and some of the following sections off the screen
by the amount of space the current section occupied.

After this fix, collapsing a section through a sticky header would work
as expected, without pushing the header and the following sections off
the screen.

Fixes: zulip#391
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a-home The home screens of the app; finding and starting conversations
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants