[pull] main from MetaMask:main#382
Merged
Merged
Conversation
…ting MAX (#23572) <!-- 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** - Resolves a sporadic re-render issue on the market details chart when a user selects `MAX` - Sets the default selected timeframe to `1M` <!-- 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? --> ## **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: [PRED-34](https://consensyssoftware.atlassian.net/browse/PRED-341) ## **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** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> <img width="420" alt="image" src="https://github.com/user-attachments/assets/0fb58841-bb0d-4af2-9554-f867f13f0fbe" /> ## **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] > Stabilizes MAX timeframe chart updates with a one-shot adaptive fidelity flow and switches default timeframe to 1M, with tests covering fidelity scenarios and empty histories. > > - **UI (PredictMarketDetails)**: > - Default `selectedTimeframe` set to `ONE_MONTH`. > - MAX interval fidelity made one-shot and stable using `useRef` locks (`maxFidelityLockedRef`, `prevTimeframeRef`): > - Reset fidelity when leaving `MAX`; wait for fetch completion; ignore immediate switch-to-MAX; compute range from primary history only. > - Renames `maxIntervalRangeMs` to `primaryMaxIntervalRangeMs` and refines range calculation. > - **Tests (PredictMarketDetails.test.tsx)**: > - Add coverage for MAX fidelity behavior: > - Requests higher fidelity for short spans; keeps default for long spans; handles empty histories gracefully. > - Utilize rerender and mocked `usePredictPriceHistory` to assert interval/fidelity calls. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit f3d8fbb. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
…ledged` (#23682) <!-- 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? --> The PR adds an additional check to the `assertUserOptedIn` function passed to the `ProfileMetricsController` to ensure that profile metrics are only collected after the user has acknowledged the PNA25 notice. ## **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: ## **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** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] 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). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] 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.
## **Description**
This PR fixes sentence case violations in lines 1-1000 of the
`locales/languages/en.json` file as part of ongoing content papercut
improvements. The changes convert Title Case strings to Sentence case
following standard capitalization conventions.
**What is the reason for the change?**
Content consistency and adherence to proper sentence case formatting
across the app.
**What is the improvement/solution?**
Updated 31 locale keys from Title Case to Sentence case, and updated all
affected test files to match the new casing.
## **Changelog**
CHANGELOG entry: Fixed sentence case violations in English locale
strings lines 1-1000
## **Related issues**
Fixes: Part of content papercut improvements batch 1
## **Manual testing steps**
```gherkin
Feature: Locale string display
Scenario: user views UI elements with updated locale strings
Given the app is running with the updated locale file
When user navigates to various screens (Settings, Onboarding, Perps, Deposit, etc.)
Then all text labels should display in proper sentence case format
And no Title Case violations should appear in the affected strings
```
## **Screenshots/Recordings**
N/A - This is a content-only change with no visual differences beyond
text casing
### **Before**
Text displayed in Title Case (e.g., "Alert Details", "Try Again", "Your
Accounts")
### **After**
Text displayed in Sentence case (e.g., "Alert details", "Try again",
"Your accounts")
## **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.
---
## **Technical Details**
### Changes Made:
- **Locale file**: Updated 31 keys in `locales/languages/en.json` (lines
1-1000)
- **Test files**: Updated 16 test files with hardcoded string assertions
- **Snapshots**: Regenerated 8 snapshot files to match new casing
### Affected Areas:
- Onboarding flows
- Settings screens
- Alert modals
- Perps/trading interfaces
- Deposit/payment flows
- Rewards banners
- Send/recipient selection
### Validation:
- All affected unit tests pass
- No old Title Case strings remain in updated test files
- Changes are purely cosmetic (text casing only)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Standardizes sentence case across `locales/languages/en.json` and
updates impacted tests/snapshots to match.
>
> - **i18n**:
> - Convert numerous strings in `locales/languages/en.json` to sentence
case (e.g., `"Try again"`, `"Additional verification"`, `"Error
details"`, `"Your accounts"`, `"Sample feature"`, `"Postal/zip code"`).
> - **Tests/Snapshots (casing updates only)**:
> - Predict: `usePredictToasts.test.ts`.
> - Ramp Deposit: `AdditionalVerification`, `BuildQuote`,
`EnterAddress`, `ErrorDetailsModal`, `PaymentMethodSelectorModal`,
`UnsupportedRegionModal`, `SdkErrorAlert` (and snapshots).
> - Rewards: `RewardsErrorBanner.test.tsx`.
> - Settings: `Views/Settings/DeveloperOptions` snapshot.
> - Confirmations: `alert-modal.test.tsx`,
`useAddressTrustSignalAlerts.test.ts`, `SendFlow/AddressList` and
`SendTo` snapshots.
> - SampleFeature: `SampleFeatureDevSettingsEntryPoint.test.tsx`,
`SamplePetNames` and `SampleFeature` snapshots.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
deae158. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
## **Description** This PR aligns Aggregator screens with the current design system components and styles as part of **Unified Buy Phase 1** ([#23636](#23636)). The Ramp components were originally created before the design system existed. These refinements reduce visual noise and inconsistencies, making the experience feel more modern, trustworthy, and consistent with the rest of the app. ### Changes: - **Inputs**: Removed borders and applied muted background (borderless input style) - **Primary CTA**: Updated buttons to design system `Button` component (Primary variant) - **Quotes list**: Updated quote cards to borderless boxes with muted background - **Account & region selectors**: Updated to muted background style to match new inputs - **Keypad**: Set keypad container background to `background.section` - **Quick amounts**: Set background to `background.section`, migrated to `Button` (Secondary variant) - **Icons**: Replaced FontAwesome/Entypo icons with component-library `Icon` (ArrowDown) - **Skeleton components**: Updated background color to `background.hover` **Note**: Visual-only changes; no behavioral changes expected. ## **Changelog** CHANGELOG entry: Refined Buy/Sell UI inputs and buttons to match design system ## **Related issues** Fixes: #23636 ## **Manual testing steps** ```gherkin Feature: Buy UI Design System Alignment Scenario: User views the Build Quote screen Given the user is on the Buy flow When user navigates to the Build Quote screen Then the inputs should have muted backgrounds without borders And the "Get quotes" button should use the Primary button style And the keypad container should have a section background And the quick amount buttons should use Secondary button style Scenario: User views the Quotes list Given the user has entered an amount to buy When user views the list of quotes Then the quote cards should have muted backgrounds without borders And the "Continue with [provider]" buttons should show loading spinner when pressed Scenario: User views Order Details Given the user has completed an order When user views the order details screen Then the action buttons should use the Primary button style Scenario: User toggles between light and dark theme Given the user is on any Ramp screen When user switches between light and dark theme Then all components should render correctly in both themes ``` ## **Screenshots/Recordings** ### **Before** #### Light Theme https://github.com/user-attachments/assets/f99f11cb-c21d-48be-afb8-4e2e2870d155 #### Dark Theme https://github.com/user-attachments/assets/832268cd-5330-48fb-9877-a57d5686e5db ### **After** #### Light Theme https://github.com/user-attachments/assets/be3400df-07d7-4db9-b1c9-df4d246e4480 #### Dark Theme https://github.com/user-attachments/assets/5f5450f8-cb12-4dee-8957-ce52e26098ce ## **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] > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is generating a summary for commit 7c91a75. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
…23692) ## **Description** This PR fixes a security issue where deep link modals were being bypassed incorrectly. Previously, links from certain sources (including external sources like `ORIGIN_DEEPLINK`) would bypass all modals regardless of whether they were signed or unsigned. This created a security risk where malicious external links could bypass user consent modals. **What changed:** - Updated modal bypass logic to only skip modals for **signed (PRIVATE) links** from trusted in-app sources (`ORIGIN_CAROUSEL`, `ORIGIN_NOTIFICATION`, `ORIGIN_QR_CODE`, `ORIGIN_IN_APP_BROWSER`) - Removed `ORIGIN_DEEPLINK` from the bypass list since it represents external links (from Slack, email, etc.) that should always show modals - Unsigned (PUBLIC) links now always show the "Proceed with caution" modal, even from in-app sources - External sources (`ORIGIN_DEEPLINK`) always show modals regardless of signature status **Why:** - Security: External links should never bypass user consent modals - User experience: Signed links from trusted in-app sources can bypass the "Redirecting you to MetaMask" modal for seamless UX - Consistency: Unsigned links always require user confirmation **Technical details:** - The bypass check now requires BOTH conditions: source is in `inAppLinkSources` AND `linkType === PRIVATE` - `linkType()` is computed once and reused to avoid duplicate computation - Updated tests to reflect the new behavior with proper coverage for all source/link type combinations ## **Changelog** CHANGELOG entry: Fixed security issue where external deep links could bypass user consent modals. Signed links from in-app sources (carousel, notifications, QR scanner) now bypass the redirect modal, while external links always show appropriate warnings. ## **Related issues** Fixes: #23559 ## **Manual testing steps** ```gherkin Feature: Deep link modal bypass behavior Scenario: Signed link from carousel bypasses modal Given user is viewing a carousel banner with a signed deep link When user taps the carousel banner link Then the link should open directly without showing "Redirecting you to MetaMask" modal Scenario: Unsigned link from carousel shows warning modal Given user is viewing a carousel banner with an unsigned deep link When user taps the carousel banner link Then the "Proceed with caution" modal should be displayed Scenario: External link always shows modal Given user receives a deep link from an external source (email, Slack, etc.) When user taps the external link Then the appropriate modal should be displayed: - "Redirecting you to MetaMask" for signed links - "Proceed with caution" for unsigned links Scenario: Signed link from notification bypasses modal Given user receives a notification with a signed deep link When user taps the notification Then the link should open directly without showing modal Scenario: QR code scan with signed link bypasses modal Given user scans a QR code containing a signed deep link When the QR code is processed Then the link should open directly without showing modal ``` ## **Screenshots/Recordings** <!-- No UI changes - this is a security fix affecting modal display logic --> ### **Before** Previously, all links from whitelisted sources (including external `ORIGIN_DEEPLINK`) would bypass modals, creating a security vulnerability. ### **After** - Signed links from trusted in-app sources bypass modals ✅ - Unsigned links always show warnings ✅ - External links always show modals ✅ ## **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 (updated existing tests and added new test cases) - [x] I've documented my code using [JSDoc](https://jsdoc.app/) format if applicable (updated comments) - [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] > Restricts modal bypass to PRIVATE links from in-app sources and ensures external sources always display the appropriate modal, with tests updated accordingly. > > - **Deep link interstitial logic (`handleUniversalLink.ts`)**: > - Compute `linkType` once (`linkInstanceType`) and use it for decisions. > - Rename `interstitialWhitelistSources` to `inAppLinkSources` and remove `ORIGIN_DEEPLINK` (external). > - Only bypass redirect modal when `source ∈ inAppLinkSources` AND `linkType === PRIVATE`. > - External sources (e.g., `ORIGIN_DEEPLINK`) always show a modal (PRIVATE → redirect, PUBLIC → caution). > - Existing `interstitialWhitelistUrls` behavior preserved. > - **Tests (`__tests__/handleUniversalLink.test.ts`)**: > - Update/expand cases: in-app signed links skip modal; in-app unsigned show PUBLIC modal. > - Add external-source cases: always show modal (PRIVATE/PUBLIC). > - Rename describe blocks to reflect in-app vs external sources; keep whitelist URL skip behavior. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 96f0778. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
…21236) ## **Description** This PR updates the Activity/Transactions page UI to align with the latest design system standards and improve consistency across the app. **What is the reason for the change?** The Activity page's filter buttons (used in Transfers and Perps tabs) were using outdated styling and inconsistent component patterns. The buttons didn't follow the current design system guidelines and used a mix of StyleSheet-based styling and old component-library components. **What is the improvement/solution?** - Migrated Activity page to use MetaMask Design System React Native (MMDS) components (`Box`, `Text`) instead of component-library equivalents - Updated all filter buttons (All/Purchased/Sold in Transfers tab, and Trades/Orders/Funding in Perps tab) to use consistent styling: - Height: 40px (previously 32px) - Horizontal padding: 16px - Border radius: 12px (previously 20px) - Gap between buttons: 12px (previously 8px) - Text: Body MD variant with Medium font weight - Selected state: `bg-icon-default` background with `text-icon-inverse` text - Unselected state: `bg-background-muted` background with `text-default` text - Replaced `TouchableOpacity` with `Pressable` for better interaction handling - Converted styling to use Tailwind CSS via `useTailwind()` hook instead of StyleSheet - Improved accessibility with proper pressed states ## **Changelog** CHANGELOG entry: Updated Activity page filter buttons to use design system components with consistent styling ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: Updated Activity page filter buttons Scenario: user views and interacts with Transfers filter buttons Given user is on the Activity tab When user taps on the "Transfers" tab Then user should see "All", "Purchased", and "Sold" filter buttons And filter buttons should have 40px height with rounded corners And the "All" button should be selected by default with dark background When user taps on "Purchased" button Then "Purchased" button should become selected with dark background And "All" button should become unselected with light background Scenario: user views and interacts with Perps filter buttons Given user is on the Activity tab And Perps feature is enabled When user taps on the "Perps" tab Then user should see "Trades", "Orders", and "Funding" filter buttons And filter buttons should have 40px height with rounded corners And the "Trades" button should be selected by default When user taps on "Orders" button Then "Orders" button should become selected with dark background And transactions list should update to show orders Scenario: user views button pressed state Given user is on any Activity tab with filter buttons When user presses and holds a filter button Then button should show a pressed state with reduced opacity When user releases the button Then button should return to its normal state ``` ## **Screenshots/Recordings** ### **Before** https://github.com/user-attachments/assets/ad772865-a079-40dd-a3bf-d9f5776c443e ### **After** https://github.com/user-attachments/assets/87fb66ab-9611-4142-b568-a6d551e897a3 https://github.com/user-attachments/assets/0b110dae-1adc-47cf-92f3-865a7e8d1f37 ## **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] > Replaces Activity/Transactions UI with design-system Header/Tabs, standardizes filter/tab styling and behavior, adds dynamic tab management, and updates related styles, tests, and e2e selectors. > > - **ActivityView (major)**: > - Replace legacy header/tab system with `HeaderBase` and `TabsList`; use `Box` and Tailwind utilities. > - Add dynamic tab ordering/visibility (Transactions, Orders, Perps, Predict) with feature flags; expose `goToTabIndex`. > - Move network filter button into Transactions tab and align styles. > - **Tabs**: > - Update `TabsList` to use `React.Children.toArray` + filter valid elements; improve key/label extraction; add swipe navigation; expose testIDs. > - **Perps Transactions**: > - Switch to design-system `Text` variants; Tailwind spacing for filter bar; tweak paddings and section header; minor empty-state padding. > - **Transactions/Multichain/Unified views**: > - Normalize empty/loading containers (full-width, `paddingVertical: 40`, bg); simplify styles creation in Multichain view. > - `TransactionElement`: restructure `ListItem` layout; wrap import-time row in `View`; small style cleanups. > - **Tests**: > - Overhaul ActivityView tests to mock new `TabsList`, validate tab presence/order and navigation; snapshot updates. > - Update e2e selectors/page objects (add `activity-view-tabs` IDs; swipe tabs bar; select tab by label). > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 5246c91. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )