MetaMask / MetaMask/metamask-mobile
Replace deprecated EntypoIcon component with Icon from the component-library
- Dominant language
- TypeScript
- Stars
- 3k
- Forks
- 1.7k
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 669
Description
### Description
Currently, mobile is using an outdated `EntypoIcon` component, which needs to be replaced with the new `Icon` component.
### Technical Details
- Replace instances of `EntypoIcon` component with `Icon ` component (`app/component-library/components/Icons/Icon/Icon.tsx`)
- Component APIs are slightly different so ensure all props have been migrated appropriately
### Acceptance Criteria
- Instances of `EntypoIcon` component are completely replaced with the new `Icon` component
- The component APIs are updated to reflect the changes in the new `Icon` component and there is no functional changes or visual regression
- PR descriptions must adhere to the designated template, ensuring that all relevant sections are completed including before and after screenshots of UI.
- The code changes should pass Jest tests, e2e tests, linting, and Storybook without any errors.
If the acceptance criteria is not met, PRs may be closed.
### Difficulty: Beginner
Good first issue for: External contributors who are familiar with running mobile locally, have knowledge of React Native, component props, Jest tests, linting, and Storybook, and want to contribute to improving the cohesiveness of UI in mobile
Contributor guide
Research direction
Search the mobile codebase for all EntypoIcon instances and compare their props with app/component-library/components/Icons/Icon/Icon.tsx. Migrate each usage without visual or functional changes, then run the Jest, e2e, lint, and Storybook checks named in the acceptance criteria, including required screenshots in the PR description.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react-native, storybook, typescript
- Domain
- frontend, mobile, testing
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100