-
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] [$250] [Search v1] Search page scroll is not smooth #41581
Comments
Triggered auto assignment to @muttmuure ( |
Job added to Upwork: https://www.upwork.com/jobs/~01fb9b7cf710602d40 |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @eh2077 ( |
📣 @nharsh94! 📣
|
@nharsh94 Thanks for your proposal. I'm not following your root cause analysis. Can you elaborate on why the scroll is not smooth? |
@nharsh94 Thanks for the update, but your root cause analysis still seems vague to me. |
Still looking for better proposals |
Still looking for proposals |
ProposalPlease re-state the problem that we are trying to solve in this issue.[Search v1] Search page scroll is not smooth #41581 What is the root cause of that problem?
Summary: Rendering the TransactionListItem is too expensive.
Finally, The render requests are blocked the render queue and event handling. What changes do you think we should make in order to solve the problem?
from App/src/components/SelectionList/TransactionListItem.tsx Lines 69 to 74 in e0b6a06
to https://github.com/charles-liang/ExpensifyApp/blob/charles/src/components/SelectionList/TransactionListItem.tsx#L71-L81 https://github.com/charles-liang/ExpensifyApp/blob/charles/src/components/SelectionList/TransactionListItem.tsx#L162
What alternative solutions did you explore? (Optional)N/A |
@charles-liang Thanks for your proposal. It's good to see you tried to pinpoint the root cause by profiling the page.
Do you mean the
Can you elaborate on why those functions cause the delay when scrolling? |
yes. i mean
Use |
@charles-liang Thanks for the update. Can you detail your improvement plan in the third/solution part of your proposal? |
Do you mean this: Maybe like this. import React from 'react';
import { createRoot } from 'react-dom/client';
import App from './App';
import { AppRegistry } from 'react-native';
import Config from './config';
import { checkForUpdates } from './updateUtils';
import { startCurrentDateUpdater } from './DateUtils';
const container = document.getElementById('root');
if (container) {
const root = createRoot(container);
AppRegistry.registerComponent(Config.APP_NAME, () => App);
AppRegistry.runApplication(Config.APP_NAME, {
initialProps: {},
rootTag: container,
});
if (Config.IS_IN_PRODUCTION) {
checkForUpdates(webUpdater());
}
startCurrentDateUpdater();
} But I've tested it and the effect is not very obvious. |
@charles-liang I mean the main solution
This part can be more detail. |
For example remove below from TransactionListItem const dateCell = (
<TextWithTooltip
shouldShowTooltip={showTooltip}
text={date}
style={[styles.label, styles.pre, styles.justifyContentCenter, isLargeScreenWidth ? undefined : [styles.textMicro, styles.textSupporting]]}
/>
); Add this before TransactionListItem const dateCell = (showTooltip, date, styles, isLargeScreenWidth)=>(
<TextWithTooltip
shouldShowTooltip={showTooltip}
text={date}
style={[styles.label, styles.pre, styles.justifyContentCenter, isLargeScreenWidth ? undefined : [styles.textMicro, styles.textSupporting]]}
/>
); |
Can you add them to your proposal? Also it'll be very helpful if you can provide a branch to test. |
ok, I update a proposal after taking a time to make a branch for your test. |
proposal@eh2077 i add a new branch with the exmaple code for your test. thanks a lot! https://github.com/charles-liang/ExpensifyApp/blob/charles/src/components/SelectionList/Search.tsx I have decoupled the component from TransactionListItem and memo them. This is just a draft for your test and needs further revisions to comply with the code of conduct. |
Still working on the PR |
|
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:
|
@charles-liang, @luacmartins, @muttmuure, @eh2077 Uh oh! This issue is overdue by 2 days. Don't forget to update your issues! |
Checklist
|
@charles-liang, @luacmartins, @muttmuure, @eh2077 6 days overdue. This is scarier than being forced to listen to Vogon poetry! |
Are we just missing payment here? |
@luacmartins Yes, that's right. Just asking, is it possible to increase the bounty a little bit as it needed more effort than usual bug fixes. I'm also fine if we just do with the default bounty. Thanks |
Thanks for confirming! I think the $250 bounty is still fair in this case. |
No problem! Let's just wait for BZ team to issue the payment. cc @muttmuure |
@charles-liang, @luacmartins, @muttmuure, @eh2077 Now this issue is 8 days overdue. Are you sure this should be a Daily? Feel free to change it! |
Looking |
Paid |
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Version Number:
Reproducible in staging?:
Reproducible in production?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by:
Slack conversation:
Action Performed:
Profile > Troubleshoot > New Search Page
Expected Result:
Scroll should be smooth
Actual Result:
Scroll is not smooth
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
327270767-f00e25f1-47a9-4095-8871-158eefed349b.mov
327281632-1fa5a858-115a-4e45-948b-c8726e76a67e.mp4
Add any screenshot/video evidence
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @muttmuureThe text was updated successfully, but these errors were encountered: