Skip to content
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 2023-10-09] [HOLD for payment 2023-09-27] [Tracking] Improve ReportScreen re-renders #26087

Closed
mountiny opened this issue Aug 28, 2023 · 42 comments
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Daily KSv2 Engineering Internal Requires API changes or must be handled by Expensify staff Planning Changes still in the thought process

Comments

@mountiny
Copy link
Contributor

mountiny commented Aug 28, 2023

Problem

The Report screen has a lot of performance bottlenecks. Mostly they are caused by unnecessary re-renders and given this component is very heavy to render, it can visibly slow down the App.

Solution

This is a tracking issue for multiple PRs and improvements which are found.

We are analysing the render cycles via Flipper Profiler and React Dev Tools and finding where are the bottle necks in the rendering of the component and its sub-tree.

So far we have found bugs regarding shared context and misuse of hooks that cause unnecessary re-renders. It might be an issue of death by a thousand paper cuts where seemingly innocuous changes cause large tree re-renders.

PRs:

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~010777a443667dee8f
  • Upwork Job ID: 1696166898891616256
  • Last Price Increase: 2023-08-28
@mountiny mountiny added Daily KSv2 Internal Requires API changes or must be handled by Expensify staff Bug Something is broken. Auto assigns a BugZero manager. labels Aug 28, 2023
@mountiny mountiny self-assigned this Aug 28, 2023
@melvin-bot
Copy link

melvin-bot bot commented Aug 28, 2023

Job added to Upwork: https://www.upwork.com/jobs/~010777a443667dee8f

@melvin-bot
Copy link

melvin-bot bot commented Aug 28, 2023

Triggered auto assignment to @Christinadobrzyn (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

@melvin-bot

This comment was marked as off-topic.

@melvin-bot
Copy link

melvin-bot bot commented Aug 28, 2023

Triggered auto assignment to Contributor Plus for review of internal employee PR - @ntdiary (Internal)

@ospfranco
Copy link
Contributor

Assign me :)

@melvin-bot
Copy link

melvin-bot bot commented Aug 28, 2023

📣 @ospfranco! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

  1. Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
  2. Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
  3. Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.
    Screen Shot 2022-11-16 at 4 42 54 PM
    Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

@mountiny mountiny changed the title Removing unnecessary re-renders of ReportScreen when marked as unread Improve ReportScreen re-renders Aug 28, 2023
@Christinadobrzyn
Copy link
Contributor

Hey @ospfranco can you complete these steps for the Upwork job assignment? Thanks! #26087 (comment)

@ospfranco
Copy link
Contributor

I'm working with margelo internally, do I need an upwork account @mountiny?

@mountiny
Copy link
Contributor Author

@Christinadobrzyn @ospfranco is from Margelo so he does not use Upwork

@Christinadobrzyn
Copy link
Contributor

Ah! So sorry for my confusion @ospfranco!

@Christinadobrzyn
Copy link
Contributor

I think this can be moved to weekly as it looks like a PR is started.

@Christinadobrzyn Christinadobrzyn added Weekly KSv2 and removed Daily KSv2 labels Aug 30, 2023
@melvin-bot melvin-bot bot added Reviewing Has a PR in review Weekly KSv2 and removed Weekly KSv2 labels Sep 5, 2023
@melvin-bot
Copy link

melvin-bot bot commented Sep 29, 2023

⚠️ Looks like this issue was linked to a Deploy Blocker here

If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

If a regression has occurred and you are the assigned CM follow the instructions here.

If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

@melvin-bot
Copy link

melvin-bot bot commented Oct 1, 2023

⚠️ Looks like this issue was linked to a Deploy Blocker here

If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

If a regression has occurred and you are the assigned CM follow the instructions here.

If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

@melvin-bot melvin-bot bot added Weekly KSv2 and removed Daily KSv2 Weekly KSv2 labels Oct 2, 2023
@melvin-bot melvin-bot bot changed the title [HOLD for payment 2023-09-27] [Tracking] Improve ReportScreen re-renders [HOLD for payment 2023-10-09] [HOLD for payment 2023-09-27] [Tracking] Improve ReportScreen re-renders Oct 2, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 2, 2023

Reviewing label has been removed, please complete the "BugZero Checklist".

@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Oct 2, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 2, 2023

The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.75-12 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-09. 🎊

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:

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

  • Merged PR within 3 business days of assignment - 50% bonus
  • Merged PR more than 9 business days after assignment - 50% penalty

@melvin-bot melvin-bot bot added the Overdue label Oct 10, 2023
@Christinadobrzyn
Copy link
Contributor

hey @situchan or @mountiny are these the two PRS we're paying? or are there more?

If it's only those two, are we ready for payment?

@melvin-bot melvin-bot bot removed the Overdue label Oct 10, 2023
@mountiny
Copy link
Contributor Author

Correct $1000 to @situchan that is it. Oscar is from agency

@Christinadobrzyn Christinadobrzyn added Daily KSv2 and removed Weekly KSv2 labels Oct 18, 2023
@melvin-bot melvin-bot bot added the Overdue label Oct 18, 2023
@Christinadobrzyn
Copy link
Contributor

Christinadobrzyn commented Oct 18, 2023

Sounds good, sorry for the delay, here is the payment details

Payouts due:

Issue Reporter: NA
Contributor: @ospfranco - payment through Margelo
Contributor+: $1000 @situchan
Contributor+: $1000 @fedirjh

Eligible for 50% #urgency bonus? NA- internal job

@situchan are you paid through Upwork? If yes, can you accept the offer here - https://www.upwork.com/jobs/~0102af23fe16b91266

@melvin-bot melvin-bot bot removed the Overdue label Oct 18, 2023
@mountiny
Copy link
Contributor Author

@Christinadobrzyn Oscar is paid outside of Upwork since he is from Margelo

@Christinadobrzyn
Copy link
Contributor

Sounds good - thanks @mountiny.

@situchan I paid you based on this payment structure in Upwork.

closing this but let me know if I'm missing anything

@fedirjh
Copy link
Contributor

fedirjh commented Oct 19, 2023

cc @Christinadobrzyn Seems you have missed #26087 (comment)

@mountiny
Copy link
Contributor Author

Ah that was my bad too, @fedirjh was additional help on this complex PR, they also reviewed and tested so they should get $1000 too

@mountiny mountiny reopened this Oct 19, 2023
@Christinadobrzyn
Copy link
Contributor

Ah sorry for missing that @fedirjh - thank you for letting me know.

Can you accept my offer in Upwork here - https://www.upwork.com/jobs/~0102af23fe16b91266

@Christinadobrzyn
Copy link
Contributor

Awesome! @fedirjh Paid you based on this payment structure

I think we're good to close, please reopen if anything else is needed!

Copy link

melvin-bot bot commented Feb 27, 2024

⚠️ Looks like this issue was linked to a Deploy Blocker here

If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

If a regression has occurred and you are the assigned CM follow the instructions here.

If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Daily KSv2 Engineering Internal Requires API changes or must be handled by Expensify staff Planning Changes still in the thought process
Projects
Development

No branches or pull requests

6 participants