← Back to PRs

#20408: Control UI: show refresh in-flight state on Overview

by tanyabrownmac open 2026-02-18 21:58 View on GitHub →
app: web-ui size: XS
Adds a visible in-flight state to the Overview page Refresh button (disabled + "Refreshing…") while overview data is reloading (channels/presence/sessions/debug/cron requests). This makes it clear the refresh action is working. <!-- greptile_comment --> <h3>Greptile Summary</h3> Adds a visible in-flight state to the Overview page Refresh button: while overview data is reloading (channels, presence, sessions, debug, cron requests), the button shows "Refreshing…" and is disabled. Translations added for all four supported locales (en, pt-BR, zh-CN, zh-TW). - `OverviewProps` gains a `refreshing: boolean` prop, computed in `app-render.ts` from the OR of `state.connected` and the five `*Loading` flags - The Refresh button in `overview.ts` uses lit's `?disabled` binding and conditionally renders the `common.refreshing` translation key - All four locale files (`en.ts`, `pt-BR.ts`, `zh-CN.ts`, `zh-TW.ts`) add a `refreshing` key to the `common` section with appropriate translations - Note: `state.cronLoading` is included in the OR but is never set by `loadCronStatus` (the function `loadOverview` actually calls) — this is harmless and defensive, but could be cleaned up if desired <h3>Confidence Score: 5/5</h3> - This PR is safe to merge — it adds a straightforward UI indicator with no logic or behavioral changes beyond button state. - The changes are minimal, well-scoped, and follow existing patterns. The new `refreshing` prop is correctly typed, the locale strings are consistent across all four locales, and the button behavior (disabled + label swap) is standard. The only minor note is that `cronLoading` won't actually be set during an overview refresh, but this is harmless. - No files require special attention. <sub>Last reviewed commit: 50a772b</sub> <!-- greptile_other_comments_section --> <sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub> <!-- /greptile_comment -->

Most Similar PRs