[pull] main from MetaMask:main#568
Merged
Merged
Conversation
<!-- 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** This PR migrates usages of **HeaderStackedStandard** to **HeaderCompactStandard** and **TitleStandard**, then removes the **HeaderStackedStandard** component from `app/component-library/components-temp/`. **Reason for change:** Preparing to deprecate HeaderStackedStandard. Replacing it with HeaderCompactStandard (button row) + TitleStandard (title block) preserves the same layout and spacings (`px-2` on the header row, `px-4 pt-1 pb-3` on the title section) while using the preferred components. **What changed:** 1. **View migrations (3 files)** - **ImportNewSecretRecoveryPhrase** – Replaced `HeaderStackedStandard` with `HeaderCompactStandard` (back + QR button) and `TitleStandard` (title + bottomAccessory), props inlined. - **ConnectHardware/SelectHardware** – Same pattern: `HeaderCompactStandard` (onBack) + `TitleStandard` (title, bottomAccessory), props inlined. - **ImportPrivateKey** – Same pattern: `HeaderCompactStandard` (backButtonProps) + `TitleStandard` (title, bottomAccessory), props inlined. - No Box wrappers; header and title are direct siblings of their parent. Spacing applied via `twClassName="px-4 pt-1 pb-3"` on `TitleStandard`. 2. **Removed HeaderStackedStandard** - Deleted `app/component-library/components-temp/HeaderStackedStandard/` (index, types, component, stories, test). - Removed its story `require()` from `.storybook/storybook.requires.js`. No other app code used HeaderStackedStandard; removal is limited to the three views above and the component folder. ## **Changelog** This PR is not end-user-facing; it refactors internal header usage and removes one header component. CHANGELOG entry: null ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/DSYS-496 ## **Manual testing steps** ```gherkin Feature: HeaderStackedStandard replaced with HeaderCompactStandard + TitleStandard Scenario: Lint and type check pass Given the branch is checked out When the author runs yarn lint and yarn lint:tsc Then both complete without errors Scenario: No references to HeaderStackedStandard Given the codebase is searched for HeaderStackedStandard Then no imports or usages remain Scenario: Migrated screens render correctly Given the app is running When the user opens Import Secret Recovery Phrase, Connect Hardware (Select Hardware), or Import Private Key Then the header shows the same back/close/actions and title section layout and spacing as before ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> N/A – layout unchanged; only implementation (component swap) changed. ### **After** https://github.com/user-attachments/assets/994e59e1-fe6d-4f16-a7df-ca1f85e5bf23 <!-- [screenshots/recordings] --> N/A – same header appearance and spacing on the three screens. ## **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] > **Low Risk** > Low risk refactor that swaps a composite header component for two existing components; main risk is minor layout/spacing or header action wiring regressions on the three migrated screens. > > **Overview** > Removes the temporary `HeaderStackedStandard` component entirely (component, types, tests, Storybook story) and drops its Storybook registration. > > Migrates three screens (`ConnectHardware/SelectHardware`, `ImportNewSecretRecoveryPhrase`, `ImportPrivateKey`) from `HeaderStackedStandard` to the equivalent `HeaderCompactStandard` + `TitleStandard` composition, preserving back/close/scan actions and moving title/subtitle content into `TitleStandard` with `twClassName="px-4 pt-1 pb-3"`. Updates the `ImportPrivateKey` snapshot to match the new header/title render structure. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 70ce3a5. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
<!--
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**
This PR adds a new **HeaderRoot** component in
`app/component-library/components-temp/`.
**Reason for change:** HeaderRoot provides a header layout with base
styles similar to HeaderBase, a left section that renders either custom
`children` or a title row (TitleStandard-style), and an end section with
the same end content behavior as HeaderBase (endAccessory or
endButtonIconProps).
**What changed:**
1. **New component: HeaderRoot**
- **Location:** `app/component-library/components-temp/HeaderRoot/`
- **Files:**
- `HeaderRoot.tsx` – main component (View root with base styles; left
section flex-1 items-start with either children or title row; end
section with endAccessory or reversed endButtonIconProps)
- `HeaderRoot.types.ts` – `HeaderRootProps` (children, title,
titleProps, titleAccessory, endAccessory, endButtonIconProps,
includesTopInset, style, testID, twClassName; extends ViewProps)
- `HeaderRoot.stories.tsx` – Storybook entry "Components Temp /
HeaderRoot" (Default, WithTitleAccessory, WithChildren,
WithEndAccessory, WithEndButtonIconProps, MultipleEndButtons,
IncludesTopInset)
- `HeaderRoot.test.tsx` – unit test suite with full coverage (rendering,
left section children vs title row, end section, includesTopInset,
style/twClassName, titleProps)
- `index.ts` – exports default and `HeaderRootProps`
- **Behavior:** Left section renders **either** `children` **or** a
title row (title + titleAccessory, like TitleStandard). End section
matches HeaderBase (endAccessory or multiple ButtonIcons from
endButtonIconProps in reverse order). No test ID constants; optional
`testID` prop is passed through to the root.
2. **Storybook**
- Updated `.storybook/storybook.requires.js` to require
`HeaderRoot.stories.tsx`.
No existing app code is updated; this is an additive change in the
component-library.
## **Changelog**
This PR is not end-user-facing; it adds an internal header component for
use by other screens.
CHANGELOG entry: null
## **Related issues**
Fixes: https://consensyssoftware.atlassian.net/browse/DSYS-498
## **Manual testing steps**
```gherkin
Feature: HeaderRoot component
Scenario: Lint and type check pass
Given the branch is checked out
When the author runs yarn lint and yarn lint:tsc
Then both complete without errors
Scenario: HeaderRoot unit tests pass
Given the branch is checked out
When the author runs yarn jest app/component-library/components-temp/HeaderRoot/HeaderRoot.test.tsx
Then all tests pass
Scenario: HeaderRoot story renders
Given Storybook is running
When the user opens "Components Temp / HeaderRoot"
Then Default and other stories render (title, children, end accessories, multiple end buttons, top inset)
```
## **Screenshots/Recordings**
<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->
### **Before**
<!-- [screenshots/recordings] -->
N/A – new component; no before state.
### **After**
<!-- [screenshots/recordings] -->
https://github.com/user-attachments/assets/771c8c17-cb8a-4ab0-8132-cb56ae0be269
Root pages after replacements
https://github.com/user-attachments/assets/333c82d3-cbec-4b5b-a02e-a53ef956a7c7
## **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]
> **Low Risk**
> Additive UI-only change introducing a new temporary header component
plus Storybook and unit tests; no existing runtime flows are modified.
>
> **Overview**
> Adds a new `HeaderRoot` component under `components-temp` that
provides a standardized header layout with a left area that renders
*either* `children` or a title row (optional `titleAccessory`), and a
right area that renders `endAccessory` or a reversed list of
`endButtonIconProps`.
>
> Includes a comprehensive `HeaderRoot.test.tsx`, a new Storybook entry
with multiple usage variants, and registers the story in
`.storybook/storybook.requires.js`.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
d4dd26d. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
<!-- 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** We changed node-version-file from 20 to '.nvmrc' in setup-node-modules.yml ([here](https://github.com/MetaMask/metamask-mobile/pull/26369/changes#diff-5abcb2b2e4ab167cca56638259b62f136b88a75db4c8b0791116a2e9e9e3678bR92)) so we need to do the same in push-eas-update.yml. testing workflow: https://github.com/MetaMask/metamask-mobile/actions/runs/22603948995 ## **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** - [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** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] 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] > **Low Risk** > Low risk: CI-only change that just aligns Node setup with `.nvmrc`, though it could affect workflow runs if the file is missing or incompatible. > > **Overview** > Updates the `push-eas-update.yml` GitHub Actions workflow to source the Node.js version from `node-version-file: '.nvmrc'` instead of hardcoding Node `20`. > > This is applied to both the fingerprint comparison job and the EAS update publish job, keeping CI Node version consistent with the repo’s configured version. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 348449d. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
## **Description** Upgraded `@metamask/design-tokens` from `^8.2.1` to `^8.2.2` to pull in the latest typography token updates from the design system. References: - Design tokens update PR: MetaMask/metamask-design-system#936 - Design system releases: https://github.com/MetaMask/metamask-design-system/releases ## **Changelog** CHANGELOG entry: null ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: design tokens dependency upgrade Scenario: app builds and design tokens resolve successfully Given the project dependencies are installed When I run the app and navigate through screens that use typography tokens Then the app should render without token resolution errors ``` ## **Screenshots/Recordings** Screens showing `HeadingMd` or `SectionHeading` ### **Before / After** <img width="350" height="2556" alt="headingmd-home-before" src="https://github.com/user-attachments/assets/d33f92df-98ad-496f-8e60-e12790640ee3" /><img width="350" height="2556" alt="headingmd-home-before" src="https://github.com/user-attachments/assets/681f88a1-0ece-4fcb-95ac-97e6408bdf60" /> <img width="350" height="2556" alt="headingmd-explore-before" src="https://github.com/user-attachments/assets/50ca9055-c168-4cbc-a147-69f25a43045f" /><img width="350" height="2556" alt="headingmd-explore-before" src="https://github.com/user-attachments/assets/536ea8ce-be40-4fc7-9070-10a17cda361d" /> <img width="350" height="2556" alt="headingmd-rewards-before" src="https://github.com/user-attachments/assets/2808af62-914a-4062-93df-c677970608de" /><img width="350" height="2556" alt="headingmd-rewards-before" src="https://github.com/user-attachments/assets/fb9ab145-318a-4144-88e4-da86807045cc" /> ## **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 - [ ] 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. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk: changes are limited to typography token updates reflected in Jest snapshots (font size changes), with no functional logic changes. > > **Overview** > Updates typography styling to align with the latest `@metamask/design-tokens` release, primarily increasing heading/label `fontSize` values from `18` to `20`. > > Regenerates a large set of Jest snapshots across banners and multiple UI flows (e.g., Ramp, Earn, permissions) to match the new rendered text styles. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit a68e696. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
## **Description** **Context:** Design refinements for the Unified Buy (Build Quote) header were specified for RC Build v7.68 and documented in [Figma (BUY · node 4982-8859)](https://www.figma.com/design/ItZzm9CzSAjOWQTUKsOdSk/BUY?node-id=4982-8859). This PR updates the navbar implementation to match the spec. **Changes:** 1. **Icon sizing** — Back and Settings header buttons now use `ButtonIconSize.Md` instead of `ButtonIconSize.Lg`, per "Button Icon Md" in the design. 2. **Title typography** — The main title ("Buy {ticker}") now uses `TextVariant.HeadingMD` instead of `TextVariant.HeadingSM`, per "Heading/Md" in the spec. 3. **Subtitle typography** — The subtitle ("On {networkName}") now uses `TextVariant.BodySMMedium` instead of `TextVariant.BodySM`, per "Body/Sm/Medium" in the spec. **File changed:** | File | Change | |------|--------| | `app/components/UI/Navbar/index.js` | `getRampsBuildQuoteNavbarOptions`: icon size Lg → Md; title HeadingSM → HeadingMD; subtitle BodySM → BodySMMedium | **Risk:** Low — 4 prop-value changes in a single navbar config function. No logic, navigation, or business behavior changed. ## **Changelog** CHANGELOG entry: Updated Unified Buy Build Quote header to use correct typography and icon sizing per design spec. ## **Related issues** Fixes: [TRAM-3305](https://consensyssoftware.atlassian.net/browse/TRAM-3305) ## **Manual testing steps** ```gherkin Feature: Unified Buy Build Quote header design Scenario: Build Quote header matches design spec Given the user is on the Build Quote screen (Buy flow) with a selected token and network When the header is visible Then the back and settings icons use medium size (Button Icon Md) And the title uses Heading/Md typography And the subtitle uses Body/Sm/Medium typography Scenario: Header loading state renders correctly Given the user navigates to Build Quote before token/network data is ready When the header is visible Then skeleton placeholders are shown for avatar and labels And after data loads the correct typography and icon sizes apply ``` ## **Screenshots/Recordings** ### **Before** - Back/Settings: `ButtonIconSize.Lg` - Title: `TextVariant.HeadingSM` - Subtitle: `TextVariant.BodySM` <img width="416" height="864" alt="image" src="https://github.com/user-attachments/assets/f5f034a4-6a0c-4774-a5dd-1173e529318d" /> ### **After** - Back/Settings: `ButtonIconSize.Md` - Title: `TextVariant.HeadingMD` - Subtitle: `TextVariant.BodySMMedium` <img width="416" height="864" alt="image" src="https://github.com/user-attachments/assets/6c8eaabe-e515-42b8-a66b-bba922854f9b" /> ## **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 - [ ] 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. [TRAM-3305]: https://consensyssoftware.atlassian.net/browse/TRAM-3305?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk visual-only tweaks to the Build Quote header (icon sizes and text variants) with no navigation or data-flow changes. > > **Overview** > Updates the Unified Buy (Build Quote) navbar styling in `getRampsBuildQuoteNavbarOptions` to match the latest design spec. > > Back and settings buttons now use `ButtonIconSize.Md` (down from `Lg`), and the title/subtitle typography is adjusted to `TextVariant.HeadingMD` and `TextVariant.BodySMMedium` respectively. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 8b9c54a. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Amitabh Aggarwal <amitabh94@users.noreply.github.com>
## **Description**
The homepage token empty state (`PopularTokenRow`) was navigating to the
Asset screen without a `source` prop, causing the analytics event in
`TokenDetails` to fall back to `TokenDetailsSource.Unknown`. The filled
state (`TokenListItem`) correctly passed `source:
TokenDetailsSource.MobileTokenList`.
Fix adds the missing `source` prop to the `navigation.navigate('Asset',
...)` call in `PopularTokenRow`, matching the filled state behaviour.
## **Changelog**
CHANGELOG entry: null
## **Related issues**
Fixes: https://consensyssoftware.atlassian.net/browse/TMCU-497
## **Manual testing steps**
```gherkin
Feature: Homepage token empty state analytics source
Scenario: user taps a token row in the zero balance (empty) state
Given the user has a zero balance account
And the homepage displays the popular tokens list
When user taps on a token row
Then the Asset screen opens
And the analytics event "Token Details Opened" includes source = "mobile-token-list"
```
## **Screenshots/Recordings**
`~`
### **Before**
`~`
### **After**
`~`
## **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**
- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] 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]
> **Low Risk**
> Low risk: adds a single `source` navigation param used for analytics
attribution, with no changes to parsing, balances, or transaction logic.
>
> **Overview**
> Fixes missing analytics attribution when opening `Asset` from the
homepage popular tokens (zero-balance) row by adding `source:
TokenDetailsSource.MobileTokenList` to the `navigation.navigate('Asset',
...)` params.
>
> Updates `PopularTokenRow` tests to assert the new `source` param
across EVM, native, and non-EVM navigation cases, and adds a dedicated
test to ensure `source` is passed for tracking.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
8a5de4a. 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 : )