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-09-04] Selection List Refactor: Checkbox List #20353

Closed
thiagobrez opened this issue Jun 7, 2023 · 41 comments
Closed
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 Engineering Improvement Item broken or needs improvement.

Comments

@thiagobrez
Copy link
Contributor

This issue keeps track of Phase 2 of the Selection List Refactor, in which we are refactoring all different list component variations into 3 new, clean components:

  • Phase 1: Radio Button List
  • Phase 2: Checkbox List (this phase)
  • Phase 3: Simple Selection List

Thoroughly discussed in the parent issue: #11795 (comment)

@cristipaval cristipaval self-assigned this Jun 7, 2023
@cristipaval cristipaval added Weekly KSv2 Improvement Item broken or needs improvement. Engineering labels Jun 7, 2023
@melvin-bot melvin-bot bot added the Overdue label Jun 15, 2023
@cristipaval
Copy link
Contributor

I guess @thiagobrez has not started on this one yet.

@melvin-bot melvin-bot bot removed the Overdue label Jun 19, 2023
@thiagobrez
Copy link
Contributor Author

Correct @cristipaval. I'll send the PR for the first refactor tomorrow. Then I'll start on this one.

@thiagobrez
Copy link
Contributor Author

Starting to investigate this.

@thiagobrez
Copy link
Contributor Author

Hey @shawnborton! I need your input here. Regarding multiple selection lists: most of them use radio buttons, but there are also cases of checkboxes. I was planning to standardise and leave only the checkbox version, as I feel like it's more intuitive for multiple selection. Do you agree, or do you have new designs/thoughts here?

@shawnborton
Copy link
Contributor

Can you show me what you are referring to? I agree that we need to do a better job of making multiple selections look like checkboxes and single selections (though they don't really exist in the app yet) look like radios.

@thiagobrez
Copy link
Contributor Author

@shawnborton My bad, forgot to attach screenshots 🤦🏻‍♂️

This is what I was referring to:

Workspace manage members Workspace invite members
image image

@shawnborton
Copy link
Contributor

Got it. I think we should just leave those untouched for now and focus only on existing checkboxes. I think we will examine the overall pattern and relationship between checkboxes and list views at some point in the future.

@thiagobrez
Copy link
Contributor Author

Weekly update: got the base structure working alongside Manage Workspace Members List. Iterated on top of the new component introduced in Phase 1 changes (PR still being reviewed here), so that needs to be merged before raising a PR for this one.

Next week will work on the remaining multiple selection lists, which should be quicker now that the base is ready.

@thiagobrez
Copy link
Contributor Author

Hey @cristipaval! I noticed that I'm not assigned to this issue. Just pointing out because I know you guys use it for internal processes :)

@cristipaval
Copy link
Contributor

Good point. You're now assigned.

@thiagobrez
Copy link
Contributor Author

Weekly update: all multiple selection lists are working! 🎉

That is:

  • Workspace members page
  • Workspace invite members page
  • Split bill page
  • New group page

Next steps are to improve the Storybook stories and performance tests built in Phase 1 PR, which is still being reviewed. Once that is merged, I can rebase into this one and raise the PR for Phase 2.

@thiagobrez
Copy link
Contributor Author

thiagobrez commented Jun 30, 2023

@shawnborton Current state of multiple selection lists:

Workspace members and invite

Before, workspace members page and workspace invite page were using 2 different lists. Members page was using checkboxes while invite page was using radio buttons. Members page had no keyboard controls, while invite page had.

Now, both are standardised using the same component, all checkboxes with keyboard controls.

Would like your input specially regarding disabled items (admin, for example):

  • Previous behavior was that it was still selectable, and showed an error when selected. In my opinion this is unnecessary because it's one extra step for the user to discover that his action will not be possible. Also, it causes a weird behavior with the "Select All" checkbox, since you can manually select that item, but when checking "Select All", that item wasn't selected

  • Current behavior is that items that can't be selected are disabled upfront (and indicated with opacity style). This makes it obvious for the user that it can't be selected, and prevents any weirdness with the "Select All" checkbox, since it can never be selected

What do you think, do you agree? See videos below

Before Current
before.mov
after.mov

Split bill

Standardised using new checkbox list component

split.bill.mov

New group

Standardised using new checkbox list component

new.group.mov

@shawnborton
Copy link
Contributor

shawnborton commented Jul 3, 2023

Hmm I don't think we should make the whole admin row appear "disabled" though - but rather, let's just make the checkbox part look disabled. Otherwise we are competing with some offline patterns we use here, cc @trjExpensify

As for the others, I don't think we should use these kinds of checkboxes on the split or group pages yet. Let's leave them as-is. I left that same comment for you above.

@thiagobrez
Copy link
Contributor Author

Hmm I don't think we should make the whole admin row appear "disabled" though - but rather, let's just make the checkbox part look disabled. Otherwise we are competing with some offline patterns we use here

Ok, cool 👍🏻

As for the others, I don't think we should use these kinds of checkboxes on the split or group pages yet. Let's leave them as-is. I left that #20353 (comment) for you above.

My mistake, I understood it differently when I read it the first time. Will leave as-is

@trjExpensify
Copy link
Contributor

Otherwise we are competing with some offline patterns we use here, cc @trjExpensify

Totally agree, that's the "pending create" pattern used when adding a member with "offline pattern B". 👍

@thiagobrez
Copy link
Contributor Author

Had to focus on a higher priority issue for the last days. Coming back to this on Monday, very close to raising a PR

@thiagobrez
Copy link
Contributor Author

Update: Draft PR is being reviewed internally

@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production labels Aug 28, 2023
@melvin-bot melvin-bot bot changed the title Selection List Refactor: Checkbox List [HOLD for payment 2023-09-04] Selection List Refactor: Checkbox List Aug 28, 2023
@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Aug 28, 2023
@melvin-bot
Copy link

melvin-bot bot commented Aug 28, 2023

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

@melvin-bot
Copy link

melvin-bot bot commented Aug 28, 2023

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

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

@cristipaval cristipaval added the Bug Something is broken. Auto assigns a BugZero manager. label Aug 29, 2023
@melvin-bot
Copy link

melvin-bot bot commented Aug 29, 2023

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

@melvin-bot melvin-bot bot added Daily KSv2 and removed Weekly KSv2 labels Aug 29, 2023
@melvin-bot
Copy link

melvin-bot bot commented Aug 29, 2023

Bug0 Triage Checklist (Main S/O)

  • This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
  • This bug is not a duplicate report (check E/App issues and #expensify-bugs)
    • If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead
  • This bug is reproducible using the reproduction steps in the OP. S/O
    • If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
    • If the reproduction steps aren't clear and you determine the correct steps, please update the OP.
  • This issue is filled out as thoroughly and clearly as possible
    • Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.
  • I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

@cristipaval
Copy link
Contributor

Bug0 Triage Checklist (Main S/O)

  • This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)

  • This bug is not a duplicate report (check E/App issues and #expensify-bugs)

    • If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead
  • This bug is reproducible using the reproduction steps in the OP. S/O

    • If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
    • If the reproduction steps aren't clear and you determine the correct steps, please update the OP.
  • This issue is filled out as thoroughly and clearly as possible

    • Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.
  • I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

Ignore this @slafortune , I added Bug label for the payments.

@cristipaval
Copy link
Contributor

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

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

FYI @slafortune: There were regressions after this PR because I wanted to merge it even though it was not perfect. The PR became too big and conflicts were regularly occurring with the main branch. I decided to merge it as long as there were no blockers for the users. All regressions (mostly styling issues) were quickly fixed in follow-up PRs. So please don't apply penalties to @Santhosh-Sellavel. He did a great job testing that huge PR.

@cristipaval cristipaval added Weekly KSv2 and removed Daily KSv2 labels Aug 29, 2023
@Santhosh-Sellavel
Copy link
Collaborator

@cristipaval This is a huge PR and there were 4 follow-ups till two got merged & two were in review two more PRs to come can we increase the bounty to $3k or at least $2K thanks!

@melvin-bot melvin-bot bot added Daily KSv2 and removed Weekly KSv2 Daily KSv2 labels Sep 4, 2023
@slafortune
Copy link
Contributor

Sorry for the delay on this @Santhosh-Sellavel. While the PR was big, it appears to have been more fragmented rather than causing a huge time suck and blocking you on other things.

@slafortune
Copy link
Contributor

Payment summary -

Bug reporter - NA
@thiagobrez does not require payment (Contractor)
@Santhosh-Sellavel is Eligible for Manual Requests and owed $1000

@Santhosh-Sellavel
Copy link
Collaborator

Sorry for the delay on this @Santhosh-Sellavel. While the PR was big, it appears to have been more fragmented rather than causing a huge time suck and blocking you on other things.

I disagree it might look like but that's not the case here. It directly affects certain areas covered in this phase, as well affects the changes done in this first phase. So a lot of time of invested in the Review & testing.

cc: @cristipaval Let me know your thoughts, thanks!

@slafortune
Copy link
Contributor

@Santhosh-Sellavel We want to clarify that the advertised price for the job is non-negotiable. We do not review or adjust the payment for smaller PRs either. This decision is final, and we will proceed accordingly. If you have any further questions or concerns unrelated to the price, please feel free to discuss them.

@Santhosh-Sellavel
Copy link
Collaborator

@slafortune

Fine I'll settle for the $1K here if it's final decision.

But we do change the price based on complexity or it's time consuming. There is no advertised price for the job. We had a fixed price a $1000 C+ per internal/agency PR review at that point.

Only certain PR qualifies for price revisions if it's approved by CME/BZ.

Thanks!

@slafortune
Copy link
Contributor

Payment Summary -

Bug reporter - NA
@thiagobrez does not require payment (Contractor)
@Santhosh-Sellavel is Eligible for Manual Requests and owed $1000

cc @anmurali @JmillsExpensify

@JmillsExpensify
Copy link

$1,000 payment approved for @Santhosh-Sellavel based on BZ summary.

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 Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2 Engineering Improvement Item broken or needs improvement.
Projects
None yet
Development

No branches or pull requests

7 participants