Uh oh!
There was an error while loading. Please reload this page.
Improve desktop update button with status-based visuals - #1427
Conversation
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 3 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Extract visual state logic into a lookup table in desktopUpdate.logic.ts, add RocketUpdateIcon with download progress fill to Icons.tsx, and consolidate formatRelativeTime into shared utils. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
b9c06b8 to
5e6fcdaCompare… header Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

What Changed
Replace the generic dot indicator on the desktop update button with a color-coded rocket icon that reflects update state:
Extract all visual-state logic into a data-driven lookup table (
VISUAL_BY_STATUS) indesktopUpdate.logic.ts— removes the inline ternary chain that was in Sidebar. AddRocketUpdateIcontoIcons.tsxwith afillPercentprop for the download progress overlay. Move the localformatRelativeTimeout of Sidebar into the sharedutils.tswith full range support (m → h → d → mo → y).6 files changed, +238 / −57.
Why
The previous update indicator was a plain dot with
animate-pulsethat gave no visual feedback during download and used a hard-to-follow ternary chain for color selection. The rocket icon communicates action more clearly, the progress fill gives real-time download feedback, and the lookup table makes adding future states trivial.UI Changes
Checklist
Note
Medium Risk
Moderate UI/UX change in the sidebar update flow plus a shared
formatRelativeTimebehavior change, which could affect multiple screens’ timestamps and updater button interactions but not security-critical logic.Overview
Replaces the sidebar desktop update indicator with a new
RocketUpdateIconthat reflects updater status via color/pulse and shows download progress via an SVG fill overlay.Moves update-button visual styling into
desktopUpdate.logic.tsviaresolveDesktopUpdateButtonVisualState(data-driven status→classes mapping) and updates tests accordingly, removing the old inline styling/error-highlight helper.Adds a new
pulse-softanimation inindex.cssand centralizesformatRelativeTimeintoutils.tswith broader/safer formatting (includingyesterday, months, years).Written by Cursor Bugbot for commit dca7c67. This will update automatically on new commits. Configure here.
Note
Improve desktop update button with status-based visuals and download progress
RocketUpdateIconSVG component in Icons.tsx that renders a rocket with an optional bottom-to-top fill overlay driven byfillPercent(0–100) to visualize download progress.resolveDesktopUpdateButtonVisualStatein desktopUpdate.logic.ts that maps updater status (available,downloading,downloaded,error) to pulse, color, and hover classes; replaces the removedshouldHighlightDesktopUpdateError.RocketUpdateIconwith download progress fill and status-derived visual classes.pulse-softCSS animation in index.css and moves relative time formatting to a sharedformatRelativeTimeutility in utils.ts.desktopUpdateStateis null; alert action button renders only fordownloadorinstallactions.Macroscope summarized dca7c67.