Commit 1aaf417
authored
feat: migrate Button (perps scope) (#27870)
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->
## **Description**
<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->
Use `Button` from DSRN package.
## **Changelog**
<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`
If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`
(This helps the Release Engineer do their job more quickly and
accurately)
-->
CHANGELOG entry: null
## **Related issues**
Fixes: https://consensyssoftware.atlassian.net/browse/DSYS-445
## **Manual testing steps**
```gherkin
Feature: my feature name
Scenario: user [verb for user action]
Given [describe expected initial app state]
When user [verb for user action]
Then [describe expected outcome]
```
## **Screenshots/Recordings**
<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->
### **Before**
https://github.com/user-attachments/assets/3a3f1703-91d7-4e57-9a90-19db116d4dd1
### **After**
https://github.com/user-attachments/assets/cb777793-b3a0-47cd-a4fb-e85a75dd9dfa
## **Pre-merge author checklist**
- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I've included tests if applicable
- [x] I've documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I've applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.
## **Pre-merge reviewer checklist**
- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Medium Risk**
> Touches many Perps screens and components by swapping the underlying
`Button` implementation and prop API, which could subtly change
disabled/loading behavior and accessibility across critical trading
flows.
>
> **Overview**
> **Perps UI is migrated from the legacy component-library `Button` to
`@metamask/design-system-react-native` across multiple
views/components** (e.g., adjust margin, place/close order, market
details/order book, transactions, tutorials, error states). This updates
the button API usage (e.g., `variant` enums, `isFullWidth`,
`isDisabled`, `isLoading`, and children-based labels) and aligns icon
usage where needed.
>
> **Loading/disabled handling is normalized to the DSRN button
behavior**, including removing bespoke spinners in
`PerpsStopLossPromptBanner` and updating tests to assert on
disabled/busy state and the button’s internal spinner instead of legacy
`loading`/`disabled` props.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
2a16909. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->1 parent 4a0a472 commit 1aaf417
28 files changed
Lines changed: 466 additions & 354 deletions
File tree
- app/components/UI/Perps
- Views
- PerpsAdjustMarginView
- PerpsClosePositionView
- PerpsHeroCardView
- PerpsMarketDetailsView
- PerpsOrderBookView
- PerpsOrderDetailsView
- PerpsOrderView
- PerpsTPSLView
- PerpsTransactionsView
- PerpsWithdrawView
- components
- PerpsConnectionErrorView
- PerpsDeveloperOptionsSection
- PerpsErrorState
- PerpsNotificationBottomSheet
- PerpsOpenOrderCard
- PerpsPositionCard
- PerpsStopLossPromptBanner
- PerpsTutorialCarousel
Lines changed: 38 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
116 | 120 | | |
117 | 121 | | |
118 | 122 | | |
| |||
128 | 132 | | |
129 | 133 | | |
130 | 134 | | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
131 | 169 | | |
132 | 170 | | |
133 | 171 | | |
| |||
Lines changed: 26 additions & 21 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
11 | | - | |
12 | | - | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| |||
447 | 447 | | |
448 | 448 | | |
449 | 449 | | |
450 | | - | |
| 450 | + | |
451 | 451 | | |
452 | | - | |
453 | | - | |
| 452 | + | |
454 | 453 | | |
455 | 454 | | |
456 | 455 | | |
457 | 456 | | |
458 | 457 | | |
459 | 458 | | |
460 | | - | |
461 | | - | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
462 | 463 | | |
463 | 464 | | |
464 | 465 | | |
465 | 466 | | |
466 | 467 | | |
467 | | - | |
| 468 | + | |
468 | 469 | | |
469 | | - | |
470 | 470 | | |
471 | 471 | | |
472 | | - | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
473 | 475 | | |
474 | | - | |
| 476 | + | |
475 | 477 | | |
476 | | - | |
477 | 478 | | |
478 | 479 | | |
479 | | - | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
480 | 483 | | |
481 | | - | |
| 484 | + | |
482 | 485 | | |
483 | | - | |
484 | 486 | | |
485 | 487 | | |
486 | | - | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
487 | 491 | | |
488 | 492 | | |
489 | | - | |
| 493 | + | |
490 | 494 | | |
491 | | - | |
492 | 495 | | |
493 | 496 | | |
494 | | - | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
495 | 500 | | |
496 | 501 | | |
497 | 502 | | |
| |||
Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
346 | 346 | | |
347 | 347 | | |
348 | 348 | | |
349 | | - | |
| 349 | + | |
| 350 | + | |
350 | 351 | | |
351 | 352 | | |
352 | 353 | | |
| |||
Lines changed: 28 additions & 25 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
18 | 20 | | |
19 | | - | |
20 | | - | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
687 | 687 | | |
688 | 688 | | |
689 | 689 | | |
690 | | - | |
| 690 | + | |
691 | 691 | | |
692 | | - | |
693 | 692 | | |
694 | 693 | | |
695 | | - | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
696 | 697 | | |
697 | | - | |
| 698 | + | |
698 | 699 | | |
699 | | - | |
700 | 700 | | |
701 | 701 | | |
702 | | - | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
703 | 705 | | |
704 | | - | |
| 706 | + | |
705 | 707 | | |
706 | | - | |
707 | 708 | | |
708 | 709 | | |
709 | | - | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
710 | 713 | | |
711 | | - | |
| 714 | + | |
712 | 715 | | |
713 | | - | |
714 | 716 | | |
715 | 717 | | |
716 | | - | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
717 | 721 | | |
718 | 722 | | |
719 | 723 | | |
| |||
732 | 736 | | |
733 | 737 | | |
734 | 738 | | |
735 | | - | |
736 | | - | |
737 | | - | |
738 | | - | |
739 | | - | |
740 | | - | |
| 739 | + | |
741 | 740 | | |
742 | | - | |
| 741 | + | |
743 | 742 | | |
744 | 743 | | |
745 | 744 | | |
| |||
748 | 747 | | |
749 | 748 | | |
750 | 749 | | |
751 | | - | |
| 750 | + | |
752 | 751 | | |
753 | 752 | | |
754 | 753 | | |
755 | | - | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
756 | 759 | | |
757 | 760 | | |
758 | 761 | | |
| |||
Lines changed: 12 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
20 | 22 | | |
21 | | - | |
22 | | - | |
23 | | - | |
| 23 | + | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
519 | 520 | | |
520 | 521 | | |
521 | 522 | | |
522 | | - | |
| 523 | + | |
523 | 524 | | |
524 | | - | |
525 | | - | |
526 | | - | |
| 525 | + | |
| 526 | + | |
527 | 527 | | |
528 | | - | |
| 528 | + | |
529 | 529 | | |
530 | 530 | | |
531 | | - | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
532 | 534 | | |
533 | 535 | | |
534 | 536 | | |
| |||
Lines changed: 1 addition & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
270 | 270 | | |
271 | 271 | | |
272 | 272 | | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
| 273 | + | |
279 | 274 | | |
280 | 275 | | |
281 | 276 | | |
| |||
0 commit comments