Skip to content

Conversation

@michellewzhang
Copy link
Contributor

@michellewzhang michellewzhang commented Sep 10, 2025

changes

implements a more mobile-friendly version of the user feedback UI when the screen is small. inspired by the phone mail app layout -- when the screen is small, either the list OR the feedback item is visible (not both). clicking an item on the list takes you to the feedback item, and there's a button to go back to the main list.

scroll:

since scroll position is not remembered by the virtualized list, i added a "jump to selected item" button that takes the user to (approximately) where they were in the list. it's not perfect, and the button also never goes away once the item is in view -- this would be a nice followup to implement.

main list:

SCR-20250910-nyin

when item is selected:

note the search + filters are hidden in this view since they're not useful.

SCR-20250910-nyhs

full demo:

Screen.Recording.2025-09-10.at.3.46.08.PM.mov

selected item / jump button resets when filters & search query changes:

Screen.Recording.2025-09-10.at.4.21.04.PM.mov

@github-actions github-actions bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Sep 10, 2025
@linear
Copy link

linear bot commented Sep 10, 2025

@michellewzhang michellewzhang marked this pull request as ready for review September 10, 2025 22:52
@michellewzhang michellewzhang requested a review from a team as a code owner September 10, 2025 22:52
)
}
estimateSize={() => 24}
estimateSize={() => 80}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

i think this should be the estimated size of the infinite list item, which is 80px.

Comment on lines +48 to +49
if (feedbackId) {
window.scrollTo(0, 0);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

scrolls the feedback item to the top (same as current behavior on large screens)


scrollContainer.scrollTo({
top: scrollPosition,
behavior: 'auto',
Copy link
Contributor Author

Choose a reason for hiding this comment

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

intentionally auto. smooth sometimes gets stuck and requires 2 clicks of the button, and i've found that it happens less with auto.

cursor[bot]

This comment was marked as outdated.

'details';
grid-template-rows: ${p =>
p.hideTop ? '0fr minmax(0, 100vh)' : 'max-content minmax(100vh, 1fr)'};
grid-template-areas: ${p => (p.hideTop ? "'.' 'content'" : "'top' 'content'")};
Copy link
Contributor Author

@michellewzhang michellewzhang Sep 10, 2025

Choose a reason for hiding this comment

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

lint was complaining if we only have 'content' and not '.' 'content' since it expects 2 rows for both hideTop and !hideTop cases but this works fine too

@michellewzhang
Copy link
Contributor Author

michellewzhang commented Sep 11, 2025

feedback from @jas-kas: "i think all these buttons (actions) could be in a context menu, or some could be replaced by an icon. like how gmail does it"

created a followup ticket for this: https://linear.app/getsentry/issue/REPLAY-693/feedback-actions-on-small-screens-should-be-optimized-for-space

@michellewzhang michellewzhang merged commit bcf5951 into master Sep 11, 2025
45 checks passed
@michellewzhang michellewzhang deleted the mz/feedabck-ui-v2 branch September 11, 2025 19:08
@github-actions github-actions bot locked and limited conversation to collaborators Sep 27, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants