[TS Migration] Migrate Icon to TypeScript#30579
Conversation
There was a problem hiding this comment.
Aad types.ts file with a common type for these files.
| </G> | ||
| <G> | ||
| <Path | ||
| // @ts-expect-error - react-native-web property |
There was a problem hiding this comment.
Can you try to augment the react-native-svg type? src/types/modules/
There was a problem hiding this comment.
Great idea! I pushed a solution, let me know what you think 😄
|
Try to add some QA steps! FYI tests are failing |
| interface SvgProps extends BaseSvgProps { | ||
| xmlns?: string; | ||
| xmlnsXlink?: string; | ||
| xmlSpace?: string; | ||
| style?: StyleProp<SvgStyle>; | ||
| hovered?: string; | ||
| pressed?: string; |
There was a problem hiding this comment.
Why all these props are needed?
There was a problem hiding this comment.
For some reason, when I augmented react-native-svg it started complaining about these values and them being undefined. If you remove the style prop, it starts showing errors related to these values, even without augmentation. I know it's weird. Do you have any ideas for possible causes?
|
|
||
| declare module 'react-native-svg' { | ||
| // eslint-disable-next-line @typescript-eslint/consistent-type-definitions | ||
| interface SvgStyle extends ViewStyle { |
There was a problem hiding this comment.
Should SvgStyle extend ViewStyle?
There was a problem hiding this comment.
It wasn't totally accurate, I modified it a bit
|
@blazejkustra applied some changes, also fixed unit tests 😄 |
|
@ Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
Assigned to @akinwale for C+ review |
|
@JKobrynski Minor nitpick, the icons are in the RHP, not the LHN. Could you please update your test steps? |
|
TypeScript Checks task is failing. Please fix. |
|
@akinwale description updated, typechecks fixed! |
Reviewer Checklist
Screenshots/Videos |
| Icon.propTypes = propTypes; | ||
| Icon.defaultProps = defaultProps; | ||
|
|
||
| export default Icon; |
There was a problem hiding this comment.
Missing displayName property
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/roryabraham in version: 1.3.99-0 🚀
|
|
🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.99-0 🚀
|
|
🚀 Deployed to staging by https://github.com/roryabraham in version: 1.4.0-0 🚀
|






Details
Fixed Issues
$ #25157
PROPOSAL: N/A
Tests
Offline tests
N/A
QA Steps
Same as Tests steps above
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)myBool && <MyComponent />.src/languages/*files and using the translation methodWaiting for Copylabel for a copy review on the original GH to get the correct copy.STYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)/** comment above it */thisproperly so there are no scoping issues (i.e. foronClick={this.submit}the methodthis.submitshould be bound tothisin the constructor)thisare necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);ifthis.submitis never passed to a component event handler likeonClick)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
MacOS: Desktop