[TS migration] Migrate 'NewTask' page to TypeScript#36886
[TS migration] Migrate 'NewTask' page to TypeScript#36886neil-marcellini merged 10 commits intoExpensify:mainfrom
Conversation
aaefe05 to
f16ad88
Compare
src/pages/tasks/NewTaskPage.tsx
Outdated
| <View style={styles.flexShrink0}> | ||
| <FormAlertWithSubmitButton | ||
| isAlertVisible={!_.isEmpty(errorMessage)} | ||
| isAlertVisible={!isEmptyObject(errorMessage)} |
There was a problem hiding this comment.
The way isEmptyObject is implemented with obj, it looks like isEmptyObject is true for any string. I think this is not what we expect here.
There was a problem hiding this comment.
Updated to Boolean, since isEmptyObject is mostly for objects
But cannot agree. isEmptyObject will work well with empty and nonempty strings. (you can check it by yourself, Object.keys() works great with string and converting it into an empty or nonempty array )
|
|
||
| ...withLocalizePropTypes, | ||
| type NewTaskDescriptionPageOnyxProps = { | ||
| /** Grab the Share title of the Task */ |
There was a problem hiding this comment.
NAB/NIT: In this comment, Share title is kinda irrelevant to this description page. Maybe just Details of the Task or Grab the details of the Task appears better to me.
Or just omit this comment? Does not appear to be useful at all.
Same for the NewTaskDetailsPage and NewTaskTitlePage. I think Share is only applicable to Share somewhere and is not for details and title.
4f76cd9 to
9c17b9c
Compare
|
@neil-marcellini 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] |
|
@c3024 PR updated |
Reviewer Checklist
Screenshots/VideosAndroid: NativenewTaskAndroid.mp4Android: mWeb ChromenewTaskAndroidChrome.mp4iOS: NativenewTaskiOS.mp4iOS: mWeb SafarinewTaskSafari.mp4MacOS: Chrome / SafarinewTaskChrome.mp4MacOS: DesktopnewTaskDesktop.mp4 |
neil-marcellini
left a comment
There was a problem hiding this comment.
@c3024 @pasyukevich these test steps do not meet our standards, they are way too vague and subjective. Please get them updated and retest if needed. I'll review the code in the meantime.
neil-marcellini
left a comment
There was a problem hiding this comment.
The code looks good, thanks
|
@neil-marcellini test cases updated |
|
Tests well newTaskAfterMainMerge.mp4 |
neil-marcellini
left a comment
There was a problem hiding this comment.
Looks great. Thanks for explaining the optional chaining and improving the test steps.
|
✋ 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/neil-marcellini in version: 1.4.52-0 🚀
|
|
🚀 Deployed to production by https://github.com/Beamanator in version: 1.4.52-6 🚀
|
| onPress={() => Navigation.navigate(ROUTES.NEW_TASK_SHARE_DESTINATION)} | ||
| interactive={!task?.parentReportID} | ||
| shouldShowRightIcon={!task?.parentReportID} | ||
| titleWithTooltips={shareDestination?.shouldUseFullTitleToDisplay ? shareDestination?.displayNamesWithTooltips : []} |
There was a problem hiding this comment.
Incorrect conversion of this old conditional caused a regression #38294
Details
Fixed Issues
$#25213
PROPOSAL:
Tests
Offline tests
QA Steps
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)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel so the design team can review the changes.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
android-native-converted.webm
Android: mWeb Chrome
android-web-converted.webm
iOS: Native
ios-native-converted.mp4
iOS: mWeb Safari
ios-web-converted.mp4
MacOS: Chrome / Safari
Desktop-web-converted.mov
MacOS: Desktop
desktop-native-converted.mov