-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[HOLD for payment 2024-06-06] [$500] iOS - Chat - Unable to select emoji if searching for specific one #42119
Comments
Triggered auto assignment to @garrettmknight ( |
@garrettmknight FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors |
We think that this bug might be related to #vip-vsp |
Job added to Upwork: https://www.upwork.com/jobs/~01ff89e96c3fe3cbbb |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @hungvu193 ( |
Reproduced, opening up. |
ProposalPlease re-state the problem that we are trying to solve in this issue.Unable to select the only emoji in the emoji picker. What is the root cause of that problem?The App/patches/@shopify+flash-list+1.6.3.patch Lines 1012 to 1015 in 153021e
Specifically, when there is only one emoji, it counts as 2. The reason is explained in the App/patches/@shopify+flash-list+1.6.3.patch Lines 968 to 971 in 153021e
To confirm, you can add a visible footer to the <FlashList
...
ListFooterComponent={<Text>Footer</Text>}
ListFooterComponentStyle={{backgroundColor: '#ff00ff20'}}
... What changes do you think we should make in order to solve the problem?
@@ -134,6 +134,10 @@
var maxBoundNextCell: CGFloat = 0
let correctedScrollOffset = scrollOffset - (horizontal ? frame.minX : frame.minY)
lastMaxBoundOverall = 0
+ if cellContainers.count == 1 {
+ let firstCellContainer = cellContainers[0]
+ lastMaxBoundOverall = horizontal ? firstCellContainer.frame.maxX : firstCellContainer.frame.maxY
+ }
cellContainers.indices.dropLast().forEach { index in
let cellContainer = cellContainers[index]
let cellTop = cellContainer.frame.minY
@@ -282,12 +286,6 @@
}
private func footerDiff() -> CGFloat {
- if viewsToLayout.count == 0 {
- lastMaxBoundOverall = 0
- } else if viewsToLayout.count == 1 {
- let firstChild = viewsToLayout[0]
- lastMaxBoundOverall = horizontal ? firstChild.frame.maxX : firstChild.frame.maxY
- }
let autoLayoutEnd = horizontal ? frame.width : frame.height
return lastMaxBoundOverall - autoLayoutEnd
}
What alternative solutions did you explore? (Optional)Workaround: Adding |
Thanks @QichenZhu, your proposal makes sense to me, can you please provide more detail about your main solution so I can test it? |
Thanks @hungvu193. For testing, I modified the local file @@ -134,6 +134,10 @@
var maxBoundNextCell: CGFloat = 0
let correctedScrollOffset = scrollOffset - (horizontal ? frame.minX : frame.minY)
lastMaxBoundOverall = 0
+ if cellContainers.count == 1 {
+ let firstCellContainer = cellContainers[0]
+ lastMaxBoundOverall = horizontal ? firstCellContainer.frame.maxX : firstCellContainer.frame.maxY
+ }
cellContainers.indices.dropLast().forEach { index in
let cellContainer = cellContainers[index]
let cellTop = cellContainer.frame.minY
@@ -282,12 +286,6 @@
}
private func footerDiff() -> CGFloat {
- if viewsToLayout.count == 0 {
- lastMaxBoundOverall = 0
- } else if viewsToLayout.count == 1 {
- let firstChild = viewsToLayout[0]
- lastMaxBoundOverall = horizontal ? firstChild.frame.maxX : firstChild.frame.maxY
- }
let autoLayoutEnd = horizontal ? frame.width : frame.height
return lastMaxBoundOverall - autoLayoutEnd
} Regarding your second question, I believe so because these modifications are made to the patched local file and then I'll update the patch to persist these changes. |
Thanks for your updates here. Let me test it carefully since it will affect lot of things. |
It's working well! Can you update your proposal to explain your change here? Thank you 😄 Screen.Recording.2024-05-17.at.18.01.45.mov |
@hungvu193 Thank you for your time! |
Proposal |
@QichenZhu 's proposal here looks good to me! 🎀 👀 🎀 C+ reviewed |
Triggered auto assignment to @neil-marcellini, see https://stackoverflow.com/c/expensify/questions/7972 for more details. |
@garrettmknight, @hungvu193, @neil-marcellini Uh oh! This issue is overdue by 2 days. Don't forget to update your issues! |
Ok, looks good to me. What's the process to get the fix merged into the actual repo eventually? |
Got to staging yesterday, will keep an eye on it in case the automation doesn't run. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.77-11 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 2024-06-06. 🎊 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:
|
As announced in Slack, could the bounty be increased since the priority is high? Thank you! |
Regression test:
Do we 👍 or 👎 ? |
I think this is complex issue and I was about to request a raise the bounty right before you posted your proposal. |
To be clear, this wouldn't be a high priority issue as described in the slack post. |
@hungvu193 can you help me understand what about this issue was particularly complex? I'm not doubting you, just trying to understand. |
Yeah. So this issue needs to be fixed on the native side (Swift code). It will take more time to debug and investigate because it will require you to understand the native code as well. In fact, this issue has been opened for the last 3 weeks with no proposals until @QichenZhu posted his proposal. |
I don't think this is the case - it looks like he put his proposal forward 1 day after I opened this up for proposals. It did take a few weeks to get through, but I don't think that's indicative of complexity with the merge freeze in mind. |
Actually when an issue was created, contributors will post the proposals even when
|
@QichenZhu (and @hungvu193 ), unfortunately no, I commented on the link above earlier this week with
If you believe the price should be increased because of added scope of the job, ie. |
@mallenexpensify @garrettmknight Thank you for clarifying the differences between title/label/status. I understand that the priority is decided solely on your end. Regarding the scope of work, @hungvu193 thoroughly tested my proposal as it modified a basic component and might affect a lot of things. He also explored the upstream repo and identified a related upstream PR. |
Hey @QichenZhu @hungvu193 - thanks for the detail. After reviewing, I'd agree this deserves an increased bounty! |
Upwork job price has been updated to $500 |
Payment Summary:
|
Received. Thank you for the bonus! |
If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Version Number: 1.4.73-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
**Issue reported by:**Applause - Internal Team
Action Performed:
Expected Result:
User is able to select the emoji, the emoji is displayed in compose
Actual Result:
User is unable to select the emoji, nothing happens after tapping the emoji
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Add any screenshot/video evidence
Bug6479977_1715638337583.IMG_6865.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @garrettmknightThe text was updated successfully, but these errors were encountered: