feat: migrate AppInformation component from JS to TSX#3
Open
devin-ai-integration[bot] wants to merge 1 commit intomainfrom
Open
feat: migrate AppInformation component from JS to TSX#3devin-ai-integration[bot] wants to merge 1 commit intomainfrom
devin-ai-integration[bot] wants to merge 1 commit intomainfrom
Conversation
- Rename index.js to index.tsx - Add TypeScript interfaces for AppInformationProps and AppInformationState - Replace PropTypes with TypeScript type annotations - Add proper typing for navigation prop using NavigationProp<ParamListBase> - Add return type annotations for all methods - Update test file to use renderWithProvider with mock navigation - Maintain existing functionality while improving type safety Co-Authored-By: mason.batchelor@windsurf.com <mason.batchelor@windsurf.com>
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
feat: migrate AppInformation component from JS to TSX
Summary
Migrated the AppInformation component from JavaScript to TypeScript as part of the ongoing JS→TS migration in the MetaMask Mobile codebase. This change adds strict type checking to a settings screen component that displays app information and provides navigation to various MetaMask resources.
Key changes:
app/components/Views/Settings/AppInformation/index.js→index.tsxAppInformationPropsandAppInformationStaterenderWithProviderwith mock navigation instead ofrenderScreenstyles.linksreferences that were causing runtime errorsReview & Testing Checklist for Human
yarn test app/components/Views/Settings/AppInformation/index.test.tsxpasses and provides meaningful coverageyarn lint:tscto ensure no new TypeScript errors were introduced across the codebaseDiagram
%%{ init : { "theme" : "default" }}%% graph TD A["app/components/Views/Settings<br/>AppInformation/index.tsx"]:::major-edit --> B["React Navigation<br/>NavigationProp"]:::context A --> C["app/util/theme/models.ts<br/>Theme interface"]:::context A --> D["app/components/Views/Settings<br/>AppInformation/index.test.tsx"]:::major-edit D --> E["app/util/test<br/>renderWithProvider"]:::context A --> F["createStyles function<br/>(colors: any)"]:::minor-edit subgraph Legend L1[Major Edit]:::major-edit L2[Minor Edit]:::minor-edit L3[Context/No Edit]:::context end classDef major-edit fill:#90EE90 classDef minor-edit fill:#87CEEB classDef context fill:#FFFFFFNotes
Potential concerns to watch for:
NavigationProp<ParamListBase>which should work but may need refinement if the actual navigation type is more specificrenderScreen(which provides real navigation context) torenderWithProviderwith mocked navigation - this is more isolated but might miss integration issuesanytype for the colors parameter increateStyles- this maintains functionality but reduces type safetyLink to Devin run: https://app.devin.ai/sessions/8c4b14ce3a794e4fa91c3a6200d9586b
Requested by: @mbatchelor81