Create staking migration widget with Fuse approval flow, unified migration journey states, coverage, and demo app integration#43
Conversation
|
@copilot I removed [DRAFT] from issue |
Implemented in commit This adds the new |
blueogin
left a comment
There was a problem hiding this comment.
- The migration flow covers the main states (wrong network, approval pending, migrating, success, and failed), which is good.
- However, the overall experience feels fragmented. Each state appears as a separate card rather than different stages of a single migration journey.
- The "Wrong Network" card feels isolated from the migration flow. It looks more like a standalone alert than the first step of the migration process.
- The "Migration Complete" and "Migration Failed" states also feel disconnected. They appear as separate notifications rather than a natural continuation of the migration progress state.
- I would expect the migration card to evolve through the different states (wrong network → approval pending → migrating → success/failure) while keeping a consistent layout and context.
- The migration progress screen is the strongest part of the design because it clearly shows what is happening. I would make that progress view the primary focus and have all other states build on top of it.
- The UI is also quite text-heavy. Users should be able to understand the current status immediately through stronger visual indicators, progress states, and clearer hierarchy.
|
@copilot The migration flow covers the main states (wrong network, approval pending, migrating, success, and failed), which is good. |
Addressed in commit The widget now stays as a single evolving migration journey card across wrong-network, approval-pending/failed, migrating, success, and failure. I moved summary + progress + state feedback into one consistent layout, added stronger status/progress indicators (badge + step states), and kept recovery actions inline with the same journey context. |
|
@copilot The top card ("Migrate Fuse staking to Celo savings") becomes somewhat redundant once migration starts. |
|
@copilot Can you add the staking migration widget to the demo app? |
Implemented in commit I added the staking migration widget to the React demo app ( |
|
@copilot please refer this design(first image) |
Implemented in commit Updated the journey to feel more guided while keeping the existing widget structure: added a prominent "Current action" block near the top of the journey, strengthened active-step visual emphasis in the stepper, and removed duplicate success/error notice sections by surfacing terminal outcome details directly in the journey timeline. |
|
@copilot first screenshot is what you should chage |
Can you point me to the exact element/state from the first screenshot that should change (for example: hero card header, CTA area, status block, or step row styling), and which state(s) it applies to? If you can add one annotated screenshot, I’ll apply it precisely in the next commit. |
…ved status messaging
…nector color handling
… logic in Stepper component
…esentation of step statuses
…ance step status representation
…ogic from StakingMigrationWidget
…d and update action handling in StakingMigrationWidget
Implements the staking migration widget now that the issue is in executable
[PLAN]state (draft removed), replacing the previous governance-only block.What was added
@goodwidget/staking-migration-widgetindex,element, andregisterexportsGoodWidgetProvider+useWallet()):migrationApiBaseUrl,migrationOperator, optional token)Fuse/ chain id122)unstake → bridge sent → bridge received → stakewith one active spinnerapproval-failedand backenderrorwith retry pathsSwitch to FuseApprove and MigrateRefresh balanceRetry migrationwallet_switchEthereumChain) in adapter actions/runtime contract@goodwidget/staking-migration-widgettoexamples/react-webdependenciesStakingMigrationWidgetinexamples/react-web/src/App.tsx(default demo view) alongside the existing claim widget showcaseexamples/storybook/src/stories/staking-migration-widget/StakingMigrationWidget.stories.tsxtests/widgets/staking-migration-widget/states.spec.tsDomain/source alignment
production.FuseStaking), with Fuse/Celo migration context implemented in the widget’s adapter and state machine behavior.Validation performed
pnpm --filter @goodwidget/staking-migration-widget run lint✅pnpm --filter @goodwidget/staking-migration-widget run build✅pnpm --filter @goodwidget/storybook run build-storybook✅pnpm --filter @goodwidget/example-react-web run lint✅ (with existing warning)pnpm --filter @goodwidget/example-react-web run build✅pnpm run build✅pnpm exec playwright test tests/widgets/staking-migration-widget/states.spec.ts --list✅Note: full Playwright execution in this environment is currently blocked by missing Chromium headless-shell binary installation (
playwright installhangs), so screenshot-producing runs could not complete here.