Skip to content

Comment: watched percentage and count - #3147

Open
rectifyer wants to merge 1 commit into
mainfrom
feat/comment_watched_percentage
Open

Comment: watched percentage and count#3147
rectifyer wants to merge 1 commit into
mainfrom
feat/comment_watched_percentage

Conversation

@rectifyer

@rectifyer rectifyer commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

What

Add watched context on comments and reviews (#3137). Every comment card now shows a small tag next to the commenter's rating indicating how much of the media they had watched: a watched percentage for shows and seasons (with a tooltip showing the exact episode count, e.g. "Watched 45 of 66 episodes"), and a play count for movies and episodes ("1 play", "3 plays"). Nothing is rendered when the commenter hasn't watched anything, and the tag is hidden on your own comments, mirroring the rating behavior.

How

The data was already on every comment response (user_stats.play_count / user_stats.completed_count) and mapped into MediaComment.user.stats, it was just never rendered. The new CommenterWatchedContext component computes the percentage from completed_count against the aired episode count: ShowEntry.episode.count for shows, and the season's episodes.count for season comments, which is now plumbed through SeasonCommentProps (verified against the live API that completed_count is scoped to the commented item). Play counts reuse TagIntlProvider.toPlayCount, which is now singular-aware via a new tag_text_play key, so PlaysTag elsewhere stops saying "1 plays" too.

Styling uses new --color-watched-context-* theme tokens (purple-600 on light, purple-300 on dark) plus a new static EyeIcon alongside the existing PlayArrowIcon.

Screenshots

Movie

image

Show

image

Season

image

Episode

image

Out of scope

The issue's stretch goals need API support and are not included: stats snapshotted at write/edit time (user_stats reflects current progress, same as v2), and a server-side "100% watched" comment filter.

@trakt-bot
trakt-bot Bot enabled auto-merge (rebase) August 17, 2026 22:08
@rectifyer rectifyer linked an issue Aug 17, 2026 that may be closed by this pull request
1 task
@rectifyer rectifyer changed the title feat(comment): watched percentage and count Comment: watched percentage and count Aug 17, 2026
@deepsource-io

deepsource-io Bot commented Aug 17, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in 010981c...a43b6b7 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Coverage  

Code Review Summary

Analyzer Status Updated (UTC) Details
JavaScript Aug 18, 2026 2:35p.m. Review ↗
Code coverage Aug 18, 2026 2:35p.m. Review ↗

Code Coverage Summary

Language Line Coverage (Overall)
Aggregate
68.9%
Javascript
68.9%

➟ Additional coverage metrics may have been reported. See full coverage report ↗


Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

@seferturan
seferturan force-pushed the feat/comment_watched_percentage branch from 0fe91bb to a43b6b7 Compare August 18, 2026 14:35

@seferturan seferturan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Applied some fixups:

  • Rescoped from comment to review
  • Folded watchedEpisodes into episodeProgress. Dropped the isEpisodic and Number.isFinite guards, both unreachable.
  • Typed media as MediaEntry | ShowEntry so the in check narrows on its own. Drops the as ShowEntry cast.
  • SeasonsDrawerHost was running seasons.find() twice. currentSeasonData already carries the id.
  • cursor: default and user-select: none on the tag, it was showing a text cursor.

Did not approve yet, because it can get very cramped when all data is there 😅
Examples:
Image

Image

I'll also have a crack at it 👌

@michaldrabik

Copy link
Copy Markdown
Collaborator

Theming/colors should follow activities chips styling IMO:

image

Accent indicates that chip would be actionable in some way.

@seferturan

Copy link
Copy Markdown
Contributor

@michaldrabik agreed, would also get rid of the purple-on-purple 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bring Back Watched Context for Reviews

3 participants