Skip to content

feat(replays): add bulk mark-as-viewed button#113805

Merged
JoshuaKGoldberg merged 9 commits intomasterfrom
replays-bulk-mark-as-viewed
Apr 30, 2026
Merged

feat(replays): add bulk mark-as-viewed button#113805
JoshuaKGoldberg merged 9 commits intomasterfrom
replays-bulk-mark-as-viewed

Conversation

@JoshuaKGoldberg
Copy link
Copy Markdown
Member

@JoshuaKGoldberg JoshuaKGoldberg commented Apr 23, 2026

Adds a new ReplayBulkViewedActions component that renders in the header when you have >=0 <'all' Replays selected. It uses the existing viewed-by endpoint to mark each selected Replay as viewed.

Initial Loading
image image

Note that that results in one network request per Replay. I filed REPLAY-898 -> REPLAY-900 to create and use a multi-Replay request endpoint. But someone please correct me, is there a way to do bulk mark-as-viewed already?

Renames QueryKeyValue to ListCheckboxQueryKeyRef so it can be exported and used in the new component props type. This also cleans up ReturnType<typeof useListItemCheckboxContext> to a newly exported & named ListItemCheckboxState.

Fixes REPLAY-894.

@linear-code
Copy link
Copy Markdown

linear-code Bot commented Apr 23, 2026

@github-actions github-actions Bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Apr 23, 2026
@JoshuaKGoldberg JoshuaKGoldberg requested a review from mjq April 23, 2026 15:50
@JoshuaKGoldberg JoshuaKGoldberg marked this pull request as ready for review April 23, 2026 16:24
@JoshuaKGoldberg JoshuaKGoldberg requested review from a team as code owners April 23, 2026 16:24
Comment thread static/app/components/replays/table/replayBulkViewedActions.tsx Outdated
Comment thread static/app/components/replays/table/replayBulkViewedActions.tsx
Copy link
Copy Markdown
Contributor

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 41a9a59. Configure here.

Comment thread static/app/components/replays/table/replayBulkViewedActions.tsx
Comment thread static/app/components/replays/table/replayBulkViewedActions.tsx
Comment thread static/app/components/replays/table/replayBulkViewedActions.tsx
Copy link
Copy Markdown
Member

@gggritso gggritso left a comment

Choose a reason for hiding this comment

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

Very cool, just a few nits/questions. Overall this would really benefit from updating the backend to fire these from one network requests, but whatever, that can happen later?

Comment thread static/app/components/replays/table/replayBulkViewedActions.tsx Outdated
Comment thread static/app/components/replays/table/replayBulkViewedActions.tsx
Co-authored-by: George Gritsouk <989898+gggritso@users.noreply.github.com>
@JoshuaKGoldberg
Copy link
Copy Markdown
Member Author

JoshuaKGoldberg commented Apr 30, 2026

really benefit from updating the backend to fire these from one network requests

Definitely. Tracking: REPLAY-900

@JoshuaKGoldberg JoshuaKGoldberg enabled auto-merge (squash) April 30, 2026 20:19
@JoshuaKGoldberg JoshuaKGoldberg merged commit bbc3e42 into master Apr 30, 2026
68 checks passed
@JoshuaKGoldberg JoshuaKGoldberg deleted the replays-bulk-mark-as-viewed branch April 30, 2026 20:26
cleptric pushed a commit that referenced this pull request May 5, 2026
Adds a new `ReplayBulkViewedActions` component that renders in the
header when you have >=0 <'all' Replays selected. It uses the existing
viewed-by endpoint to mark each selected Replay as viewed.

<table>
<thead>
<tr>
<th>Initial</th>
<th>Loading</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<img width="548" height="289" alt="image"
src="https://github.com/user-attachments/assets/0f4abec4-091f-4eec-a3f0-6e91fea1fbef"
/>
</td>
<td>
<img width="548" height="289" alt="image"
src="https://github.com/user-attachments/assets/c093ee90-6106-4ca5-bdfa-bf10246499f9"
/>
</td>
</tr>
</tbody>
</table>

Note that that results in one network request per Replay. I filed
REPLAY-898 -> REPLAY-900 to create and use a multi-Replay request
endpoint. But someone please correct me, is there a way to do bulk
mark-as-viewed already?

Renames `QueryKeyValue` to `ListCheckboxQueryKeyRef` so it can be
exported and used in the new component props type. This also cleans up
`ReturnType<typeof useListItemCheckboxContext>` to a newly exported &
named `ListItemCheckboxState`.

Fixes REPLAY-894.

---------

Co-authored-by: George Gritsouk <989898+gggritso@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants