You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[HOLD for payment 2023-10-13] [$500] Chat - Creating a new line in composer causes the composer to jump when expanding #27892
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
Identify the pull request that introduced this issue and revert it.
So numberOfLinesProps changes a little bit later than numberOfLines state
This makes the composer jump
What changes do you think we should make in order to solve the problem?
We don't need to calculate the vertical padding based on numberOfLinesProps props. We have numberOfLines state and get padding based on this. This makes more sense than using props because this value represent the current state of the composer.
const inputStyleMemo = useMemo(
() => [
// We are hiding the scrollbar to prevent it from reducing the text input width,
// so we can get the correct scroll height while calculating the number of lines.
numberOfLines < maxLines ? styles.overflowHidden : {},
StyleSheet.flatten([style, {outline: 'none'}]),
StyleUtils.getComposeTextAreaPadding(numberOfLines, isComposerFullSize),
],
[style, maxLines, numberOfLines, isComposerFullSize],
);
This works as expected
Result27892.mp4
What alternative solutions did you explore? (Optional)
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.78-4 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2023-10-13. 🎊
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.
External issue reporter
Contributor that fixed the issue
Contributor+ that helped on the issue and/or PR
For reference, here are some details about the assignees on this issue:
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
[@robertKozik] The PR that introduced the bug has been identified. Link to the PR:
[@robertKozik] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[@robertKozik] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[@robertKozik] Determine if we should create a regression test for this bug.
[@robertKozik] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
[@johncschuster] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:
[@robertKozik] The PR that introduced the bug has been identified. Link to the PR: I cannot find any particular PR which introduce it. I believe it was overlooked during implementation
[@robertKozik] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: N/A
[@robertKozik] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: N/A
[@robertKozik] Determine if we should create a regression test for this bug. I don't think we need it here. This bug didn't block any crucial user flow
[@robertKozik] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again. N/A
Activity
melvin-bot commentedon Sep 20, 2023
Triggered auto assignment to @johncschuster (
Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.melvin-bot commentedon Sep 20, 2023
Bug0 Triage Checklist (Main S/O)
Platformsin OP are ✅)OSBotify commentedon Sep 20, 2023
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open
StagingDeployCashdeploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:melvin-bot commentedon Sep 20, 2023
Triggered auto assignment to @tylerkaraszewski (
Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.tylerkaraszewski commentedon Sep 20, 2023
I've confirmed this happens but I'm not sure where to look to fix it.
dummy-1111 commentedon Sep 21, 2023
Proposal
Please re-state the problem that we are trying to solve in this issue.
Creating a new line in the main composer causes the composer to jump while expading
What is the root cause of that problem?
We determine the vertical padding here based on
numberOfLinesPropApp/src/components/Composer/index.js
Line 447 in 5ff88b7
And we pass
numberOfLinesprops toRNTextInputcomponent hereApp/src/components/Composer/index.js
Line 468 in 5ff88b7
The problem is in the mismatch of
numberOfLinesandnumberOfLinesPropWhen needed, we change both the
numberOfLinesstate andnumberOfLinesProphereApp/src/components/Composer/index.js
Lines 364 to 366 in 5ff88b7
but changing
numberOfLinesProprequires Onyx merge and takes some more timeApp/src/pages/home/report/ReportActionCompose/ComposerWithSuggestions.js
Line 232 in 5ff88b7
So
numberOfLinesPropschanges a little bit later thannumberOfLinesstateThis makes the composer jump
What changes do you think we should make in order to solve the problem?
We don't need to calculate the vertical padding based on
numberOfLinesPropsprops. We havenumberOfLinesstate and get padding based on this. This makes more sense than using props because this value represent the current state of the composer.This works as expected
Result
27892.mp4
What alternative solutions did you explore? (Optional)
34 remaining items
melvin-bot commentedon Oct 6, 2023
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.78-4 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2023-10-13. 🎊
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.
For reference, here are some details about the assignees on this issue:
As a reminder, here are the bonuses/penalties that should be applied for any External issue:
melvin-bot commentedon Oct 6, 2023
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
johncschuster commentedon Oct 16, 2023
Payment has been issued to @s-alves10
johncschuster commentedon Oct 16, 2023
@robertKozik can you complete the BZ Checklist when you get a moment? Thank you!
robertKozik commentedon Oct 16, 2023
CC. @johncschuster
johncschuster commentedon Oct 19, 2023
Sweet! Thank you!