Expensify / App

Welcome to New Expensify: a complete re-imagination of financial collaboration, centered around chat. Help us build the next generation of Expensify by sharing feedback and contributing to the code.
https://new.expensify.com
MIT License
3.36k stars 2.78k forks source link

[HOLD for payment 2023-10-02] [$500] Split bill - Here is no smooth animation for Paid by and Split with users on Split bill page #26376

Closed izarutskaya closed 11 months ago

izarutskaya commented 1 year ago

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


Action Performed:

  1. Open website
  2. Click on plus icon > Split bill >Enter sum > Choose user(s) and click on Next btn > Click on Paid by and Split with's user's username

Expected Result:

There should be smooth animation for Paid by and Split with users on Split bill page

Actual Result:

There is no smooth animation for Paid by and Split with users on Split bill page

Workaround:

Unknown

Platforms:

Which of our officially supported platforms is this issue occurring on?

Version Number: v1.3.60-1

Reproducible in staging?: Y

Reproducible in production?: Y

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

Notes/Photos/Videos: Any additional supporting documentation

https://github.com/Expensify/App/assets/115492554/cbd05c35-c259-46a7-ab25-454f4e7ea770

https://github.com/Expensify/App/assets/115492554/8ba4bb01-89dc-45ca-b79a-28e4f99c1fff

Expensify/Expensify Issue URL:

Issue reported by: @mahmudjontoraqulov

Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1692713551555059

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~0179ce98efccffa8c3
  • Upwork Job ID: 1700175437224157184
  • Last Price Increase: 2023-09-15
  • Automatic offers:
    • b4s36t4 | Contributor | 26739682
    • mahmudjontoraqulov | Reporter | 26739683
melvin-bot[bot] commented 1 year ago

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

melvin-bot[bot] commented 1 year ago

Bug0 Triage Checklist (Main S/O)

b4s36t4 commented 1 year ago

Proposal

Please re-state the problem that we are trying to solve in this issue.

Split bill - Here is no smooth animation for Paid by and Split with users on Split bill page.

What is the root cause of that problem?

The RCA for this issue lies here in this snippet

https://github.com/Expensify/App/blob/96a0db1aa2e239530f926b9bf62951f3c3408918/src/pages/ProfilePage.js#L102-L106.

We're calling the OpenPublicProfilePage command API without any condition.

But we have multiple conditionals based on the loading start for the component. This is how the current flow is

Click on Account -> Navigate to ProfilePage -> load variables related to component & Call the API -> props.personalDetails updated -> Again load the variable.

This transition causing the modal to re-render two quickly causing the interruption with the transition.

We already have the loading indicator but it isn't working because of few cases which we're not considering when we're doing the api call.

https://github.com/Expensify/App/blob/96a0db1aa2e239530f926b9bf62951f3c3408918/src/pages/ProfilePage.js#L240

Here we're only showing loading state when there is no minimum details and loading state is true.

Although we have the loading state as true but we have minimum details for the particular user which is the reason we're not showing the loading.

What changes do you think we should make in order to solve the problem?

We should move the useEffect to below lines and add the dependency of hasMinimumDetails and only call the API if we don't have minimum details.


useEffect(() => {
    if (ValidationUtils.isValidAccountRoute(accountID) && !hasMinimumDetails) {
        PersonalDetails.openPublicProfilePage(accountID);
    }
}, [accountID, hasMinimumDetails]);

Doing this so ensures we're not causing the re-render unnecessarily and so the animation works perfectly.

What alternative solutions did you explore? (Optional)

NA

Result

https://github.com/Expensify/App/assets/59088937/b87d87ef-6468-4aa7-9c6d-6483c1b582b1

PS: This is the smoothest transition I've encountered and fixed(on demo though) :xD

melvin-bot[bot] commented 1 year ago

@kevinksullivan Huh... This is 4 days overdue. Who can take care of this?

melvin-bot[bot] commented 1 year ago

Job added to Upwork: https://www.upwork.com/jobs/~0179ce98efccffa8c3

melvin-bot[bot] commented 1 year ago

Current assignee @kevinksullivan is eligible for the External assigner, not assigning anyone new.

melvin-bot[bot] commented 1 year ago

Triggered auto assignment to Contributor-plus team member for initial proposal review - @eVoloshchak (External)

kevinksullivan commented 1 year ago

Moving forward πŸ‘

eVoloshchak commented 1 year ago

@b4s36t4's proposal looks good to me, I think we should proceed with it

PS: This is the smoothest transition I've encountered and fixed(on demo though) :xD

does this mean some transitions can be less smooth than others? 🀯

πŸŽ€πŸ‘€πŸŽ€ C+ reviewed!

melvin-bot[bot] commented 1 year ago

Triggered auto assignment to @neil-marcellini, see https://stackoverflow.com/c/expensify/questions/7972 for more details.

melvin-bot[bot] commented 1 year ago

@eVoloshchak @kevinksullivan @neil-marcellini this issue was created 2 weeks ago. Are we close to approving a proposal? If not, what's blocking us from getting this issue assigned? Don't hesitate to create a thread in #expensify-open-source to align faster in real time. Thanks!

melvin-bot[bot] commented 1 year ago

@eVoloshchak, @kevinksullivan, @neil-marcellini Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

eVoloshchak commented 1 year ago

Not overdue, waiting on @neil-marcellini's opinion

melvin-bot[bot] commented 1 year ago

πŸ“£ It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? πŸ’Έ

melvin-bot[bot] commented 1 year ago

@eVoloshchak, @kevinksullivan, @neil-marcellini Whoops! This issue is 2 days overdue. Let's get this updated quick!

eVoloshchak commented 1 year ago

Not overdue, waiting on @neil-marcellini's opinion on this

neil-marcellini commented 1 year ago

@b4s36t4's proposal looks good to me,

I agree, hired.

melvin-bot[bot] commented 1 year ago

πŸ“£ @eVoloshchak Please request via NewDot manual requests for the Reviewer role ($500)

melvin-bot[bot] commented 1 year ago

πŸ“£ @b4s36t4 πŸŽ‰ An offer has been automatically sent to your Upwork account for the Contributor role πŸŽ‰ Thanks for contributing to the Expensify app!

Offer link Upwork job Please accept the offer and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review πŸ§‘β€πŸ’» Keep in mind: Code of Conduct | Contributing πŸ“–

melvin-bot[bot] commented 1 year ago

πŸ“£ @mahmudjontoraqulov πŸŽ‰ An offer has been automatically sent to your Upwork account for the Reporter role πŸŽ‰ Thanks for contributing to the Expensify app!

Offer link Upwork job

b4s36t4 commented 1 year ago

@eVoloshchak Created PR here #27876

melvin-bot[bot] commented 1 year ago

Based on my calculations, the pull request did not get merged within 3 working days of assignment. Please, check out my computations here:

On to the next one πŸš€

melvin-bot[bot] commented 1 year ago

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

melvin-bot[bot] commented 1 year ago

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.3.73-1 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2023-10-02. :confetti_ball:

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[bot] commented 1 year ago

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:

eVoloshchak commented 12 months ago
eVoloshchak commented 12 months ago

Based on my calculations, the pull request did not get merged within 3 working days of assignment. Please, check out my computations here:

I don't think that's correct, it was merged on a weekend, so it's definitely less than 3 business days

kevinksullivan commented 12 months ago

Weird, the dates are totally off in that post v. the PR, which shows it was opened on Sept 20 and merged on Sept 21. Paying out bonus for this.

kevinksullivan commented 12 months ago

@eVoloshchak offer sent, lmk when you accept! I will plan to pay bonus as well

kevinksullivan commented 12 months ago

Paid @b4s36t4 and @MahmudjonToraqulov

eVoloshchak commented 12 months ago

Weird, the dates are totally off in that post v. the PR, which shows it was opened on Sept 20 and merged on Sept 21

@kevinksullivan, it's calculated from the moment a contributor is assigned to the job to the moment PR is merged. The dates are correct, but the calculation of days elapsed isn't

offer sent, lmk when you accept! I will plan to pay bonus as well

Requested the payment via NewDot, thanks!

JmillsExpensify commented 12 months ago

Can I get a payment summary on this issue?

kevinksullivan commented 12 months ago

Payment summary:

JmillsExpensify commented 12 months ago

$750 payment approved for @eVoloshchak based on BZ summary.

melvin-bot[bot] commented 11 months ago

@eVoloshchak, @kevinksullivan, @neil-marcellini, @b4s36t4 Whoops! This issue is 2 days overdue. Let's get this updated quick!