Skip to content

Rating stars can't be cleared to 0; 5-star mode shows half-stars it can't set #24

Description

@NickReisenauer

Spotted during a UI review. File: simalytics/Components/RatingView.swift + the rating onChange sync in the detail views.

Two related issues:

  1. No way to clear a rating. updateRating(to:) only ever assigns whole indices 1...maxRating; there is no gesture anywhere to return to 0. Once you tap a star you can't remove the rating. Suggested: re-tapping the current star toggles to 0 — if rating.wrappedValue == Double(index) { rating.wrappedValue = 0 } else { … }.
    Note: the onChange sync (MovieDetailView ~231, Show/Anime equivalents) POSTs to Simkl /sync/ratings; 0 is not a valid Simkl rating, so a value of 0 must route to /sync/ratings/remove instead, or clearing will silently fail.
  2. 5-star display vs input mismatch. In 5-star mode the views pass .roundToHalfStar and seed localRating = simklRating/2, so an odd Simkl rating (e.g. 7 → 3.5) is displayed as a half star — but tapping only sets whole stars, mapped back via *2 to even values (2/4/6/8/10). So odd Simkl ratings (1/3/5/7/9) can't be set in 5-star mode, and tapping a half-filled star snaps to a whole star. Either drop half-star rounding in 5-star mode (display = input) or support half-star tap input (detect tap x-position within the star cell).

Source: multi-agent UI review, 2026-07-02.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions