Skip to content

[scanner] fix: complete refresh icon animation consistency#21265

Merged
clubanderson merged 1 commit into
mainfrom
scanner/fix-21261b
Jul 18, 2026
Merged

[scanner] fix: complete refresh icon animation consistency#21265
clubanderson merged 1 commit into
mainfrom
scanner/fix-21261b

Conversation

@clubanderson

Copy link
Copy Markdown
Collaborator

Fixes #21261

Completes the work started in #21264 by applying the same refresh icon animation pattern to the one remaining component that had a real gap.

Changes

web/src/components/security/SecurityComplianceTab.tsx

Added isRefreshing?: boolean prop to the component interface and used it to conditionally apply animate-spin to the RefreshCw icon in the compliance refresh button. This is the only file from the issue's list that had both a clickable refresh button and an available loading state that was not being reflected in the icon animation.

web/src/components/security/Security.tsx

Passes isRefreshing={dataRefreshing || securityLoading || securityRefreshing} to SecurityComplianceTab so the parent's combined refresh state drives the icon spin.

Audit of remaining files from #21261

All other files flagged in the issue were audited and are already consistent:

File Status
feedback/FeatureRequestList.tsx cn('w-3 h-3', isLoading && 'animate-spin')
feedback/UpdatesTabGitHubContributionsSection.tsx isGitHubRefreshing ? 'animate-spin' : ''
feedback/UpdatesTab.tsx isRefreshing ? 'animate-spin' : ''
events/Events.tsx refreshingAll && 'animate-spin'
rewards/RewardsPanel.tsx isRefreshing ? 'animate-spin' : ''
compliance/SegregationOfDuties.tsx loading && 'animate-spin'
compliance/ChangeControlAudit.tsx isRetrying && 'animate-spin'
compliance/DataResidency.tsx isRetrying && 'animate-spin'
history/CardHistory.tsx ✅ Static semantic icon (history entry type)
settings/UpdateSettingsForm.tsx ✅ Browser-reload button (synchronous)
settings/sections/PersistenceSection.tsx syncing ? 'animate-spin' : ''
settings/sections/ProfileSection.tsx isSaving && 'animate-spin'
settings/sections/AgentSection.tsx isRefreshing ? 'animate-spin' : ''
settings/sections/TokenUsageSection.tsx ✅ Synchronous reset action
settings/sections/AgentBackendSettings.tsx isRefreshing ? 'animate-spin' : ''
settings/sections/LocalClustersSection.tsx isLoading ? 'animate-spin' : ''
settings/sections/GitHubTokenSection.tsx tokenTesting ? 'animate-spin' : ''
acmm/RepoPicker.tsx scan.isRefreshing ? 'animate-spin' : ''
widget/MiniDashboard.tsx isRefreshing && 'animate-spin'
gitops/GitOps.tsx ✅ Sync-dialog trigger (not async fetch)
terminal/PodExecTerminal.tsx ✅ Always-spinning reconnect indicator
PageErrorBoundary.tsx ✅ Page-reload button (synchronous)
dashboard/ReplaceCardModal.tsx ✅ Header icon only
dashboard/ResetDialog.tsx ✅ Option visual icon
drilldown/DrillDownModal.tsx ✅ Error-state retry button
drilldown/RemediationConsole.tsx isExecuting ? 'animate-spin' : ''
drilldown/views/ArgoAppDrillDown.tsx ✅ Section heading icon
drilldown/views/RBACDrillDown.tsx refreshing && 'animate-spin'
drilldown/views/DeploymentDrillDown.tsx isRefreshing && 'animate-spin'
drilldown/views/HelmReleaseDrillDown.tsx ✅ Metadata label icon ("Revision")
drilldown/views/OperatorDrillDown.tsx ✅ Metadata label icon ("Channel")
drilldown/views/KustomizationDrillDown.tsx ✅ No clickable RefreshCw button
drilldown/views/PodDrillDown.tsx isRefreshing && 'animate-spin'
drilldown/views/YAMLDrillDown.tsx isLoading ? 'animate-spin' : ''
drilldown/views/LogsDrillDown.tsx isLoading ? 'animate-spin' : ''
drilldown/views/pod-drilldown/PodRelatedTab.tsx relatedLoading && 'animate-spin'
drilldown/views/pod-drilldown/PodAiAnalysis.tsx aiAnalysisLoading && 'animate-spin'
drilldown/views/pod-drilldown/PodOutputTab.tsx ✅ No RefreshCw button
drilldown/views/EventsDrillDown.tsx isLoading ? 'animate-spin' : ''
drilldown/views/PolicyDrillDown.tsx ✅ Metadata label icon ("Action")
drilldown/views/BuildpackDrillDown.tsx ✅ Metadata label icon ("Status")
setup/DeveloperSetupDialog.tsx ✅ Collapsible-section label icon
cards/karmada_status/KarmadaStatus.tsx isRefreshing ? 'animate-spin' : ''
cards/openyurt_status/OpenYurtStatus.tsx ✅ Fixed in #21264
cards/otel_status/index.tsx isRefreshing ? 'animate-spin' : ''
cards/failover_timeline/FailoverTimeline.tsx ✅ Static event-type icon ("Rebalance")

Tie animate-spin on the SecurityComplianceTab refresh button to the
actual refreshing state (dataRefreshing || securityLoading ||
securityRefreshing) propagated from Security.tsx.  All other files
flagged in #21261 were already addressed (either by PR #21264 or by
earlier commits): the remaining RefreshCw usages are static semantic
icons (metadata labels, section headers, history-type icons) that
intentionally do not spin.

Completes #21261

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: scanner <scanner@kubestellar.io>
Copilot AI review requested due to automatic review settings July 18, 2026 09:57
@kubestellar-prow kubestellar-prow Bot added the dco-signoff: yes Indicates the PR's author has signed the DCO. label Jul 18, 2026
@netlify

netlify Bot commented Jul 18, 2026

Copy link
Copy Markdown

Deploy Preview for kubestellarconsole ready!

Name Link
🔨 Latest commit 5fb118c
🔍 Latest deploy log https://app.netlify.com/projects/kubestellarconsole/deploys/6a5b4e1d2fa3f00008c8668d
😎 Deploy Preview https://deploy-preview-21265.console-deploy-preview.kubestellar.io
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@kubestellar-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign mikespreitzer for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@github-actions

Copy link
Copy Markdown
Contributor

🐝 Hi @clubanderson! I'm kubestellar-hive[bot], an automation bot for this repo.

Trusted users — org members and contributors with write access — can mention @kubestellar-hive in a comment to trigger repo automation.
On issues, that mention queues an automated fix attempt. On pull requests, it records extra context for existing automation.
This is not an interactive Q&A bot, so mentions should be treated as requests for automation rather than a conversation.

Automation may take a moment to start, and follow-up happens through workflow activity rather than chat replies.

@github-actions github-actions Bot added ai-generated Pull request generated by AI tier/2-standard labels Jul 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

👋 Hey @clubanderson — thanks for opening this PR!

🤖 This project is developed exclusively using AI coding assistants.

Please do not attempt to code anything for this project manually.
All contributions should be authored using an AI coding tool such as:

This ensures consistency in code style, architecture patterns, test coverage,
and commit quality across the entire codebase.


This is an automated message.

@kubestellar-prow kubestellar-prow Bot added the size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. label Jul 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

✅ Test Coverage Check

All new source files in this PR have corresponding test files.

Checked web/src/hooks/ and web/src/components/ against origin/main.

@github-actions

Copy link
Copy Markdown
Contributor

♿ Accessibility Audit (WCAG 2.1 AA)

✅ No WCAG 2.1 AA violations detected in audited routes.


Powered by axe-core. Target: WCAG 2.1 AA compliance.

Copilot AI 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.

Pull request overview

This PR finishes the refresh-icon animation consistency work for the Security dashboard by wiring an isRefreshing state into the remaining compliance refresh button, so the RefreshCw icon can spin while refresh work is in progress.

Changes:

  • Extend SecurityComplianceTab with an optional isRefreshing prop and conditionally apply animate-spin to the refresh icon.
  • Pass a combined refresh/loading state from Security.tsx into SecurityComplianceTab so the tab’s refresh button reflects parent refresh activity.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
web/src/components/security/SecurityComplianceTab.tsx Adds isRefreshing prop and uses it to drive RefreshCw spin animation.
web/src/components/security/Security.tsx Passes combined refresh/loading state into SecurityComplianceTab.

Comment on lines 78 to +82
<button
onClick={handleRefresh}
className="flex items-center gap-2 px-4 py-2 rounded-lg bg-secondary hover:bg-secondary/80 text-sm text-foreground transition-colors"
>
<RefreshCw className="w-4 h-4" />
<RefreshCw className={cn('w-4 h-4', isRefreshing && 'animate-spin')} />
className="flex items-center gap-2 px-4 py-2 rounded-lg bg-secondary hover:bg-secondary/80 text-sm text-foreground transition-colors"
>
<RefreshCw className="w-4 h-4" />
<RefreshCw className={cn('w-4 h-4', isRefreshing && 'animate-spin')} />
@clubanderson
clubanderson merged commit dafb709 into main Jul 18, 2026
51 of 55 checks passed
@kubestellar-prow
kubestellar-prow Bot deleted the scanner/fix-21261b branch July 18, 2026 10:22
@github-actions

Copy link
Copy Markdown
Contributor

Thank you for your contribution! Your PR has been merged.

Check out what's new:

Stay connected: Slack #kubestellar-dev | Multi-Cluster Survey

@github-actions

Copy link
Copy Markdown
Contributor

✅ Post-Merge Verification: passed

Commit: dafb7091db0f0ecf890eae71cb18fda15448d3b5
Specs run: smoke.spec.ts
Report: https://github.com/kubestellar/console/actions/runs/29640744337

@github-actions

Copy link
Copy Markdown
Contributor

Post-merge build verification passed

Both Go and frontend builds compiled successfully against merge commit dafb7091db0f0ecf890eae71cb18fda15448d3b5.

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

Labels

ai-generated Pull request generated by AI dco-signoff: yes Indicates the PR's author has signed the DCO. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. tier/2-standard

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Auto-QA] Refresh icon animation consistency issues

2 participants