Commit e16208e
authored
fix: Improve Perps Chart panning navigation (MetaMask#19345)
## **Description**
It was reported that on low-end Android devices, that there was a
performance jitteriness with the PerpsChart. This PR aims to address
those issues by adding custom configurations for Android, and tweaking
the sensitivity of the pan gesture handlers.
Additionally, this PR addresses a few other chart related bugs:
1. Yaxis values not showing up for Pers with very small values (like
PUMP)
2. Xaxis values not being localized to user's timezone
3. "More" should be selected when a period within the more menu is
selected
4. Adds skeleton loader
5. Fix for current price line showing the price of the last visible
candle, rather than the current candle price
This PR also introduces the `OHLClegend` component which displays the
OHLC data for each candle when longpressing/dragging over the candles.
When switching candles in this mode, haptics should be executed.
You can double tap the chart to exit out of this mode. You can also pull
down to refresh the chart to it's default period/zoom of 3min/45
candles.
## **Changelog**
CHANGELOG entry: Adds configurations and fixes for candlestick chart UX
## **Related issues**
Fixes:
## **Manual testing steps**
```gherkin
Feature: Candlestick chart navigationPerps
Scenario: user wants to navigate the chart
Given they are on the perps details view
When user pans, they navigate the time series
When user pinches, they zoom in and out of the time series
When a user long presses and drags, they enter into OHLC candle mode, where they see the values of each candle
```
## **Screenshots/Recordings**
High End Android - Samsung Galaxy S23 Ultra
https://github.com/user-attachments/assets/d465c9e1-3fc8-462b-a130-14e80f93d299
Low end Android - Pixel 3a
https://github.com/user-attachments/assets/02d0a827-17dc-40ed-aca0-633edb42c453
## **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.1 parent 720d954 commit e16208e
7 files changed
Lines changed: 1110 additions & 517 deletions
File tree
- app/components/UI/Perps
- components
- PerpsCandlePeriodSelector
- TradingViewChart
- constants
Lines changed: 72 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
Lines changed: 39 additions & 33 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
| 3 | + | |
| 4 | + | |
12 | 5 | | |
13 | 6 | | |
14 | 7 | | |
| 8 | + | |
15 | 9 | | |
16 | 10 | | |
17 | 11 | | |
| |||
34 | 28 | | |
35 | 29 | | |
36 | 30 | | |
37 | | - | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
38 | 37 | | |
39 | 38 | | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
| 39 | + | |
47 | 40 | | |
48 | 41 | | |
49 | 42 | | |
| |||
52 | 45 | | |
53 | 46 | | |
54 | 47 | | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
63 | 55 | | |
64 | 56 | | |
65 | 57 | | |
| |||
72 | 64 | | |
73 | 65 | | |
74 | 66 | | |
75 | | - | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
76 | 73 | | |
77 | 74 | | |
78 | 75 | | |
| |||
82 | 79 | | |
83 | 80 | | |
84 | 81 | | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
91 | 89 | | |
92 | 90 | | |
93 | 91 | | |
94 | 92 | | |
95 | 93 | | |
96 | | - | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
97 | 103 | | |
98 | 104 | | |
99 | 105 | | |
| |||
0 commit comments