What
Move review reaction optimistic updates, server mutation, and rollback behaviour from Review Card into the frontend Review module.
Why
Review Card changes current-user reaction sets, sends the request, and restores state on failure. That lifecycle belongs with the other review transitions.
Area
Parent tracking issue
Notes or constraints
Done when
- Review Card renders reaction state without owning optimistic-update logic.
- The Review module owns reaction transitions and rollback.
What
Move review reaction optimistic updates, server mutation, and rollback behaviour from Review Card into the frontend Review module.
Why
Review Card changes current-user reaction sets, sends the request, and restores state on failure. That lifecycle belongs with the other review transitions.
Area
Parent tracking issue
Notes or constraints
Done when