Skip to content

feat: unified async operation progress/transition animation UX#90

Merged
Keith-CY merged 1 commit intomainfrom
fix/issue-60
Mar 5, 2026
Merged

feat: unified async operation progress/transition animation UX#90
Keith-CY merged 1 commit intomainfrom
fix/issue-60

Conversation

@dev01lay2
Copy link
Copy Markdown
Collaborator

Summary

Implements unified async operation UX improvements per #60.

Changes

  • AsyncActionButton — reusable component (src/components/ui/AsyncActionButton.tsx) with spinner, loading label, and disabled state; replaces scattered loading patterns across pages
  • Doctor.tsx — backup row fade-out CSS transition on delete success; "Create Backup" button now uses AsyncActionButton, eliminating the redundant backingUp state variable
  • UpgradeDialog.tsx — indeterminate progress bar with IndeterminateProgress component + phase labels (Backing up → Upgrading → Done)
  • i18nhome.deleting key added to en.json / zh.json for button states

Testing

  • All 245 existing tests pass (pnpm test --run)
  • Animations rely on CSS transitions and Tailwind keyframes

Fixes #60

- Add AsyncActionButton component for consistent loading states
- Add fade-out transition animation for backup row deletion in Doctor.tsx
- Add indeterminate progress bar with phase labels to UpgradeDialog.tsx
- Replace scattered loading state code with AsyncActionButton
- Add i18n keys for new phase labels

Also refactors 'Create Backup' button in Doctor.tsx to use AsyncActionButton,
eliminating the redundant backingUp state variable.

Fixes #60
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

📊 Test Coverage Report

Metric Base (main) PR (fix/issue-60) Delta
Lines 73.52% (5545/7542) 73.52% (5545/7542) ⚪ ±0.00%
Functions 66.98% (641/957) 66.98% (641/957) ⚪ ±0.00%
Regions 74.92% (9329/12452) 74.92% (9329/12452) ⚪ ±0.00%

Coverage measured by cargo llvm-cov (clawpal-core + clawpal-cli).

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

📦 PR Build Artifacts

⚠️ No build artifacts were produced. Check the workflow run for details.


🔨 Built from 110b266 · View workflow run
⚠️ Unsigned development builds — for testing only

Copy link
Copy Markdown

@Linn-San Linn-San left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. The Doctor backup action migration to AsyncActionButton is cleaner and removes redundant local loading state while preserving existing success/error handling. CI is green across required jobs.\n\nNote (non-blocking): current PR body mentions additional files/components, but the actual diff in this PR appears scoped to src/pages/Doctor.tsx only; consider updating the description for accuracy.

@Keith-CY Keith-CY merged commit 1ee822f into main Mar 5, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: 异步操作统一进度/过渡动画 UX

3 participants