App icon indicating copy to clipboard operation
App copied to clipboard

[$250] Workspace - Workspace profile page becomes grayed out when go offline

Open lanitochka17 opened this issue 1 year ago • 33 comments

If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!


Version Number: 9.0.19-0 Reproducible in staging?: Y Reproducible in production?: Y If this was caught during regression testing, add the test name, ID and link from TestRail: N/A Email or phone of affected tester (no customers): [email protected] Issue reported by: Applause - Internal Team

Action Performed:

  1. Login with gmail account
  2. Create workspace
  3. Go offline
  4. Go to workspace profile page

Expected Result:

Workspace profile page should not be grayed out since the workspace was created in online mode

Actual Result:

Workspace profile page becomes grayed out when user goes offline

Workaround:

Unknown

Platforms:

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

  • [ ] Android: Native
  • [ ] Android: mWeb Chrome
  • [ ] iOS: Native
  • [ ] iOS: mWeb Safari
  • [x] MacOS: Chrome / Safari
  • [ ] MacOS: Desktop

Screenshots/Videos

Add any screenshot/video evidence

https://github.com/user-attachments/assets/ef924aba-a998-4be2-b32c-66346c3aec02

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~0182138e49511ea4ac
  • Upwork Job ID: 1823362392640621309
  • Last Price Increase: 2024-08-27
  • Automatic offers:
    • shubham1206agra | Reviewer | 103705107
    • Krishna2323 | Contributor | 103705109
Issue OwnerCurrent Issue Owner: @shubham1206agra

lanitochka17 avatar Aug 12 '24 19:08 lanitochka17

Triggered auto assignment to @puneetlath (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.

melvin-bot[bot] avatar Aug 12 '24 19:08 melvin-bot[bot]

@puneetlath FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

lanitochka17 avatar Aug 12 '24 19:08 lanitochka17

We think that this bug might be related to #vip-vsb

lanitochka17 avatar Aug 12 '24 19:08 lanitochka17

Proposal

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

Workspace - Workspace profile page becomes grayed out when go offline

What is the root cause of that problem?

Pending fields are not cleared in success data. https://github.com/Expensify/App/blob/5d57ae84466a52dd25b12e9b0e76eda26281ae96/src/libs/actions/Policy/Policy.ts#L1596-L1602 https://github.com/Expensify/App/blob/5d57ae84466a52dd25b12e9b0e76eda26281ae96/src/libs/actions/Policy/Policy.ts#L1673-L1677

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

Clear pending fields in success data for generalSettings & description also.

What alternative solutions did you explore? (Optional)

Krishna2323 avatar Aug 12 '24 20:08 Krishna2323

Proposal

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

Workspace profile page becomes grayed out when go offline

What is the root cause of that problem?

We add these pendingFields in optimistic data https://github.com/Expensify/App/blob/659011e347acee51f320580a1841ce34ec6c1292/src/libs/actions/Policy/Policy.ts#L1600-L1601 But we do not remove them in Success data https://github.com/Expensify/App/blob/659011e347acee51f320580a1841ce34ec6c1292/src/libs/actions/Policy/Policy.ts#L1600-L1601

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

Actually, there's no need to include these lines because we're not waiting for a backend response for them. The backend response here doesn’t return a description or general settings, so we can safely remove these two lines. https://github.com/Expensify/App/blob/659011e347acee51f320580a1841ce34ec6c1292/src/libs/actions/Policy/Policy.ts#L1600-L1601

What alternative solutions did you explore? (Optional)

Nodebrute avatar Aug 12 '24 20:08 Nodebrute

Job added to Upwork: https://www.upwork.com/jobs/~0182138e49511ea4ac

melvin-bot[bot] avatar Aug 13 '24 14:08 melvin-bot[bot]

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

melvin-bot[bot] avatar Aug 13 '24 14:08 melvin-bot[bot]

Edited by proposal-police: This proposal was edited at 2024-08-14 11:16:16 UTC.

Proposal

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

Workspace profile page becomes grayed out when user goes offline

What is the root cause of that problem?

In this PR, we plan to just add generalSettings: CONST.RED_BRICK_ROAD_PENDING_ACTION, but description: CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD, is also added.

And these pendingFields are not cleared in successData and failureData: https://github.com/Expensify/App/blob/5d57ae84466a52dd25b12e9b0e76eda26281ae96/src/libs/actions/Policy/Policy.ts#L1673-L1677 leads to the bug.

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

  • We can add:
                    generalSettings: null,
                    description: null,

in: https://github.com/Expensify/App/blob/5d57ae84466a52dd25b12e9b0e76eda26281ae96/src/libs/actions/Policy/Policy.ts#L2254

and

        {
            onyxMethod: Onyx.METHOD.MERGE,
            key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`,
            value: {
                pendingAction: null,
                pendingFields: {
                    autoReporting: null,
                    approvalMode: null,
                    reimbursementChoice: null,
                    generalSettings: null,
                    description: null,
                },
            },
        },

in: https://github.com/Expensify/App/blob/5d57ae84466a52dd25b12e9b0e76eda26281ae96/src/libs/actions/Policy/Policy.ts#L2321

  • After this PR, we will use separately pending field outputCurrency and address instead of using generalSettings. So we need to add these pending to: https://github.com/Expensify/App/blob/5d57ae84466a52dd25b12e9b0e76eda26281ae96/src/libs/actions/Policy/Policy.ts#L1596
address: CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD,
generalSettings: CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD

and then also clear these in successData and failureData.

What alternative solutions did you explore? (Optional)

  • We can remove all the pendingFields: https://github.com/Expensify/App/blob/5d57ae84466a52dd25b12e9b0e76eda26281ae96/src/libs/actions/Policy/Policy.ts#L1596-L1602

then update: https://github.com/Expensify/App/blob/5d57ae84466a52dd25b12e9b0e76eda26281ae96/src/pages/workspace/WorkspaceProfilePage.tsx#L199

                            <OfflineWithFeedback pendingAction={policy?.pendingFields?.generalSettings ?? policy?.pendingAction}>

Similar logic should applied to:

https://github.com/Expensify/App/blob/5d57ae84466a52dd25b12e9b0e76eda26281ae96/src/pages/workspace/WorkspaceProfilePage.tsx#L214 https://github.com/Expensify/App/blob/5d57ae84466a52dd25b12e9b0e76eda26281ae96/src/pages/workspace/WorkspaceProfilePage.tsx#L232 https://github.com/Expensify/App/blob/5d57ae84466a52dd25b12e9b0e76eda26281ae96/src/pages/workspace/WorkspaceProfilePage.tsx#L252

dominictb avatar Aug 14 '24 09:08 dominictb

Proposal updated

dominictb avatar Aug 14 '24 11:08 dominictb

@shubham1206agra, just to note, the changes in this PR should be handled there only, or we can hold off until that PR is merged. It has nothing to do with this issue. The general solution will be the same, to add missing pending fields. The pending fields were intentionally added in this PR, so I think we shouldn't remove them.

Krishna2323 avatar Aug 14 '24 11:08 Krishna2323

@puneetlath, @shubham1206agra Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

melvin-bot[bot] avatar Aug 16 '24 18:08 melvin-bot[bot]

📣 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] avatar Aug 20 '24 16:08 melvin-bot[bot]

@puneetlath, @shubham1206agra 6 days overdue. This is scarier than being forced to listen to Vogon poetry!

melvin-bot[bot] avatar Aug 20 '24 18:08 melvin-bot[bot]

@shubham1206agra thoughts on the proposals?

puneetlath avatar Aug 21 '24 19:08 puneetlath

@puneetlath, @shubham1206agra Now this issue is 8 days overdue. Are you sure this should be a Daily? Feel free to change it!

melvin-bot[bot] avatar Aug 22 '24 18:08 melvin-bot[bot]

@Krishna2323's proposal looks good.

🎀👀🎀 C+ reviewed

shubham1206agra avatar Aug 23 '24 02:08 shubham1206agra

Current assignee @puneetlath is eligible for the choreEngineerContributorManagement assigner, not assigning anyone new.

melvin-bot[bot] avatar Aug 23 '24 02:08 melvin-bot[bot]

@shubham1206agra Can you check my proposal? It will work in the latest code changes in main branch.

dominictb avatar Aug 23 '24 02:08 dominictb

I think @Krishna2323 proposal and https://github.com/Expensify/App/issues/47260#issuecomment-2288493961 is fine with me.

shubham1206agra avatar Aug 23 '24 02:08 shubham1206agra

With the changes in the selected proposal, the policy name is not grey out when creating policy in offline. Because now, we use policy?.pendingFields?.name as the pending action for the policy name:

https://github.com/Expensify/App/blob/844c6bf01829b88b7392cdc330a787a6366c8cec/src/pages/workspace/WorkspaceProfilePage.tsx#L199

dominictb avatar Aug 23 '24 02:08 dominictb

Btw, as mentioned in @Krishna2323 's comment:

The general solution will be the same, to add missing pending fields

So I think he can handle the details when creating PR. So that solution looks good.

dominictb avatar Aug 23 '24 02:08 dominictb

@puneetlath @shubham1206agra 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] avatar Aug 26 '24 17:08 melvin-bot[bot]

@puneetlath, @shubham1206agra Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

melvin-bot[bot] avatar Aug 26 '24 18:08 melvin-bot[bot]

Waiting on assignment from @puneetlath

shubham1206agra avatar Aug 27 '24 05:08 shubham1206agra

⚠️ 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[bot] avatar Aug 27 '24 13:08 melvin-bot[bot]

@shubham1206agra just a quick update: we no longer use generalsettings. The only thing left in the pending fields is description. I've mentioned in my proposal that we should remove it. https://github.com/Expensify/App/blob/9ddca5c4ac8168ad36da570192a6e4ef10820e67/src/libs/actions/Policy/Policy.ts#L1632

In the backend response, we don’t check for description. According to the Offline_UX, we’re using the Optimistic Without Feedback Pattern, which means we shouldn’t change the UI in offline mode since we're not waiting for server confirmation.

cc:@puneetlath

Nodebrute avatar Aug 27 '24 13:08 Nodebrute

@Nodebrute Thank you for the input. But your reasoning is wrong. We are using pattern B here. We should keep the description greyed out while creating the workspace. So, we will proceed with @Krishna2323's proposal as usual. And I will ask the deploy blocker to be marked as closed.

shubham1206agra avatar Aug 27 '24 14:08 shubham1206agra

@shubham1206agra Thanks for clearing that up 🙂

Nodebrute avatar Aug 27 '24 14:08 Nodebrute

@puneetlath I think you wrote in the wrong issue

shubham1206agra avatar Aug 27 '24 15:08 shubham1206agra

📣 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] avatar Aug 27 '24 16:08 melvin-bot[bot]