fix: Task description is covered by the keyboard pop up#50544
fix: Task description is covered by the keyboard pop up#50544lakchote merged 16 commits intoExpensify:mainfrom
Conversation
|
I am a little stuck on the iOS builds, will add later |
rojiphil
left a comment
There was a problem hiding this comment.
@nkdengineer I have left some comments. Please have a look. Thanks.
src/pages/home/report/ReportActionCompose/ComposerWithSuggestions/ComposerWithSuggestions.tsx
Outdated
Show resolved
Hide resolved
| const isComposerCoveredUp = !isFocused || EmojiPickerActions.isEmojiPickerVisible() || isMenuVisible || !!modal?.isVisible || modal?.willAlertModalBecomeVisible; | ||
| const isComposerCoveredUp = !isFocused || EmojiPickerActions.isEmojiPickerVisible() || isMenuVisible || !!isVisibleRef.current || willAlertModalBecomeVisibleRef.current; | ||
| return !isComposerCoveredUp; | ||
| }, [isMenuVisible, modal, isFocused]); |
There was a problem hiding this comment.
Wouldn't removal of modal from dependencies fail to trigger update of checkComposerVisibility when isVisible or willAlertModalBecomeVisible change? I think we should keep it simple by reusing modal itself.
| return; | ||
| } | ||
| isVisibleRef.current = !!modalArg.isVisible; | ||
| willAlertModalBecomeVisibleRef.current = !!modalArg.willAlertModalBecomeVisible; |
There was a problem hiding this comment.
Why don't we use the pattern of useState as used here? Using useRef would not help in re-render which we may want to do with the change in modal.
There was a problem hiding this comment.
@rojiphil I checked this pattern but not sure why the perf-test still fails when I use this.
There was a problem hiding this comment.
I checked this pattern but not sure why the perf-test still fails when I use this.
@nkdengineer Can you please merge main again and check? A recent PR was merged about 6 hours ago to update the npm and node version which could be causing this.
There was a problem hiding this comment.
A recent PR was merged about 6 hours ago to update the npm and node version which could be causing this.
@rojiphil It happened when we started the PR.
I merged the latest main.
There was a problem hiding this comment.
It happened when we started the PR.
@nkdengineer Yeah. That's right. Looks like the rendering is happening quite often and we need to avoid unnecessary renders.
Do you think the following can help here?
There was a problem hiding this comment.
Ideally, we would want the fix for the performance issue. But if we want to merge, we may not want to merge with the performance issue. Instead, it may be better to revert the migration changes of withOnyx to useOnyx. I think this will help resolve the performance issue although this will bring up the lint issue. But this may be acceptable as we would have fixed the issue impacting the CRITICAL flow as mentioned here.
I will let @lakchote weigh in here and advice on the way ahead.
There was a problem hiding this comment.
We for sure want to fix the performance issue.
Instead, it may be better to revert the migration changes of withOnyx to useOnyx.
Let's do that if that fixes the issue. But it doesn't look like it does (ebb488e).
When you merged main (a1803bc) tests did pass @nkdengineer.
There was a problem hiding this comment.
But it doesn't look like it does (ebb488e).
This commit has changes related to migration from withOnyx to useOnyx. That's why it gives a problem.
When you merged
main(a1803bc) tests did pass @nkdengineer.
That's correct but that commit still has issues as mentioned in #50544 (comment) and is incomplete with respect to migration.
Instead, it may be better to revert the migration changes of withOnyx to useOnyx.
Let's do that if that fixes the issue.
@lakchote Sure. Let's do this.
@nkdengineer Let us include only the fix required for this issue and revert the changes to bring back the original withOnyx implementation. Would this not work?
There was a problem hiding this comment.
Thanks for the details @rojiphil. I misinterpreted what you were saying about revert the migration changes of withOnyx to useOnyx..
Let's do it! @nkdengineer if you could do it in a timely manner, it'd be greatly appreciated.
There was a problem hiding this comment.
I misinterpreted what you were saying about
revert the migration changes of withOnyx to useOnyx..
Oh! Got it. Wrong sentence formation. My bad
|
Ah! Nice. Thanks @nkdengineer for the changes. |
|
@rojiphil The test is fixed. Sometimes it's out of the limited time of the test. |
|
@nkdengineer The keyboard shows up for android native platform. Here is a test video demonstrating this. 50346-android-issue.mp4 |
Reviewer Checklist
Screenshots/VideosiOS: mWeb Safari50346-mweb-safari-001.mp4Android: Native50346-android-native-002.mp4Android: mWeb Chrome50346-mweb-chrome-001.mp4iOS: Native50346-ios-native-001.mp4MacOS: Chrome / Safari50346-web-safari-001.mp4MacOS: Desktop50346-desktop-001.mp4 |
@rojiphil Because we can reuse this variable and don't need to add another Onyx data. |
|
@rojiphil I updated. |
rojiphil
left a comment
There was a problem hiding this comment.
@nkdengineer Thanks for the changes. But I have few NAB observations as below:
a. Please update the following test steps as that would help QA understand better:
Note: The tests are applicable only for mWeb and native platforms.
- Sign up with a new account
- Complete onboarding step using
Track and budget expenses - Navigate to Concierge DM if needed
- Tap on
Track an expensetask to navigate to the task report - Verify that the keyboard is not displayed
b. The test videos for iOS native and mWeb platforms are missing. Please include them.
@lakchote The changes LGTM and tests well too. This will fix the issue at hand.
Over to you for review. Thanks.
The lint issue would remain as mentioned before due to the migration issue of withOnyx. Maybe we can create another issue and invite proposals to address this.
|
@lakchote looks like this was merged without a test passing. Please add a note explaining why this was done and remove the |
|
Not an emergency, there is a lint test failing because we're not using Given the critical impact of the issue, we need to get this fix merged. I've created another issue (#51562) so that we can use |
|
✋ 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/lakchote in version: 9.0.55-0 🚀
|
|
🚀 Deployed to production by https://github.com/Beamanator in version: 9.0.55-10 🚀
|

Details
Fixed Issues
$ #50346
PROPOSAL: #50346 (comment)
Tests
Offline tests
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)myBool && <MyComponent />.src/languages/*files and using the translation methodSTYLE.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 and/or tagged@Expensify/designso 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.mov
Android: mWeb Chrome
android-mweb.mov
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
MacOS: Desktop