-
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
Fix Inverted
prop on the FlatList
component with a RN Patch
#3381
Comments
Triggered auto assignment to @kadiealexander ( |
Triggered auto assignment to @thienlnam ( |
@thienlnam we plan to have a contributor work on this, can you review to ensure I didn't miss anything then add the External label? Thanks |
Triggered auto assignment to @trjExpensify ( |
@mallenexpensify Sorry, was OOO but issue looks good and we can have a contributor start working on it. Nice detailed write-up! |
|
Hello, I was checking this issue in the web version of the expensify.cash and noticed that the chat messages are deeply nested in divs. My first action towards fixing this issue would be trying to streamline this chat to make sure there are less areas of conflit between the messages. However, if I also remember it right, it is an expensify policy not to have different code for web/android/ios etc. Is that still the case? Since I can imagine the reason for this complexity might be special needs of the mobile platforms. |
Hi! it seems that the problem is in prop inverted of FlatList. |
Can you clarify what you mean by this? What are "areas of conflict" between the messages?
We allow different code for platform specific changes, but try to dry it up so only the part that needs to be platform specific is separated out and the changes are in different platform specific file extensions. Feel free to read more information on it here |
I'm pretty sure that this is to display the chat messages in inverse order - can you verify that this doesn't change the functionality of the chat messages and doesn't break anything else? |
@thienlnam I agree with you. this prop is the easiest way to do infinite scrolling with the addition of an element at the bottom |
Raised to $4000 and created a new job https://www.upwork.com/jobs/~014c8ddadb545a60f4 |
@Viacheslav80 Is right, the prop inverted of Flatlist applies ProposalTo solve the issue I propose to avoid usage of As a quick demo I removed the 3381-demo.mp4Now there is obviously more to it:
There might be more todos. These are just the ones that are on my mind right now. Anyway, I believe that since it is a common practice to not invert the message list visually in chat apps, I shouldn't run into any pitfalls. If anything, I will always be able to take a peek at mattermost source code (an open-source self-hosted slack alternative). |
This comment has been minimized.
This comment has been minimized.
Thank you both for the very detailed proposals! @dklymenk I believe we ran into performance issues when reversing the props like that before but now that pagination exists with chats that might be okay but you may need to deal with some changes related to that It looks like @ghorbani-m's proposal does something similar with changing it back to a regular FlatList and inverting the chats virtually before they are rendered. Before we accept any proposal here, I'm finding that these proposals would change a fundamental way the chats work right now and want to loop in @kidroca / @roryabraham / @marcaaron who have been looking into bi-directional scrolling and get their thoughts on this |
Based on the issue description we are not trying to do any workarounds (past solutions all look like workaround and none have mentioned a RN fork) please see:
|
Actually, I have completely missed that part. Sorry for that. However, even though I wouldn't call it a bug in react-native, what we can do is change how the To accomplish that we remove all the I actually tried the code suggested by @ghorbani-m and it doesn't seem to work at all. I get a bunch of errors in the console and a blank white screen. Not sure what's up with that. Also, I have to mention that messages stored in LocalStorage are already sorted by sequence number in ascending order, and then a reverse is applied to them in ReportActionsView.js. Additionally, I tried to apply my fix (removing inverted prop and scaleY) without doing an additional reverse and instead I have removed the one in So regardless of your priorities I can do the job, but personally I wouldn't touch the react-native code and just fix the code you have in FE repo. |
Thanks, our priority and the deliverable for this issue is to fix the react native code in our fork. If anyone is interested in doing that job (and not a workaround) then please provide a clear proposal for what changes you would make. |
@thienlnam could you create a new branch at expensify/react-native-web which has version 0.15.7 from this commit Expensify/react-native-web@9d6d39f please ? |
Looks like our fork already has version 0.15.7 https://github.com/Expensify/react-native-web/blob/master/package.json |
@azimgd Any update on those fixes? |
To sumup:
Some buggy behaviour with long lists on react-native-web:
|
Added some comments to the react-native-web PR |
@thienlnam replied. |
Reverting the App pr because it created this deploy blocker #6792 |
Fix: #6798 |
Hey guys, all 3 PR's are deployed to production on Monday. Can we update the status of this ticket please. |
@azimgd Jack is out of of the office until Jan 3rd. I've pinged other engineers to see if they had time to take a look, I think many of them might also be out. I'll follow up and try to get more 👀/help on this issue next week. Can you confirm the 3 PRs? I think one is below. Standard payment timing is 7 days after PR is deployed to production, assuming there are no regressions. |
Current status of this ticket: After the first regression, Azimgd submitted a couple PRs which fixed the problems
We ran into another regression #6792 which Azimgd quickly fixed with #6798 As @mallenexpensify mentioned, our process is
Since #6798 was the last PR to address the issue (deployed to production Dec 21) here the payment will be applied around Dec 28th assuming no other regressions occur |
Update on the pricing of this ticket @mallenexpensify Original ticket price: $16000 New ticket price: $20500 |
Woohoo! And they said it couldn't be done! |
Thanks for the thorough breakdown @thienlnam . Thanks for all the help @azimgd ! |
Hi there, just wanted to note a regression to copy/paste:
https://expensify.slack.com/archives/C01GTK53T8Q/p1640337980101200
…On Fri, Dec 24, 2021 at 12:35 AM Matt Allen ***@***.***> wrote:
Thanks for the thorough breakdown @thienlnam
<https://github.com/thienlnam> . Thanks for all the help @azimgd
<https://github.com/azimgd> !
I added the payment to my calendar for the 28th (assuming no regressions).
I'll update here once payment is issued.
—
Reply to this email directly, view it on GitHub
<#3381 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAEMNUSUJJJYQHFIJXEIIZ3USO537ANCNFSM46DJUEOQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you commented.Message ID:
***@***.***>
|
Hey David, Can we actually create a new task for this one as it's related to formatting ? |
Agree with @azimgd I think these are separate issues. Per Slack (link) We have this two existing issues: When/where needed, let's keep creating singular issue til we get all the copy/issues resolved |
@azimgd paid $20,500 per Jack's breakdown above. Thanks for seeing this one through @azimgd , it's been the largest external issue we've ever had, feels realllly good to close this. |
cc @kidroca as we are discussing a possible regression here https://expensify.slack.com/archives/C01GTK53T8Q/p1641320742022500?thread_ts=1641315371.490700&cid=C01GTK53T8Q |
Added some more comments on slack to explain what's happening and why |
If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Expected Result:
Actual Result:
Copying is sporadic and 'jumps around' when you highlight text over multiple messages. View video example at https://www.screencast.com/t/AzFBzTDs3ESm
Pasting - When pasting copied text from multiple e.cash messages, it's out of order
Action Performed:
Workaround:
The work around is to copy single messages at a time.
Platform:
Where is this issue occurring?
Web ✅
iOS
Android
Desktop App ✅
Mobile Web
Version Number: Version 1.0.62 (the issue has been happening since we launched)
Logs: N/A
Notes/Photos/Videos:
The deliverable is to fix the core issue (Copying and Pasting on Web and Desktop are weird and out of order). The PR should be submitted against our RN fork (Expensify/react-native).
A lot of discussion about this issue is here for additional context #1341
Expensify/Expensify Issue URL: From months ago https://github.com/Expensify/Expensify/issues/142340#
View all open jobs on Upwork
The text was updated successfully, but these errors were encountered: