Skip to content

[HOLD for payment 2024-01-17] Hold Requests: Educational Interstitial #31347

Description

@robertjchen

Educational interstitial when holding for the first time

Depends on some of the changes in: #31300 but can be done independently.

When "Hold" is tapped for the first time in our <MoneyRequestOverflowMenu we'll perform a check to see if it's the first time they've used the feature.

We'll attempt to load a private_holdUseExplained NVP from the user's account. If this flag is false or does not exist, then we will show a new interstitial that explains the Hold feature.

Under src/components create a new <ProcessMoneyRequestHoldMenu for the Hold popover.

This will be composed of rows three blocks, followed by the "Got it, thanks!" button to close it out. Each block consists of:
1 graphic
1 title text
1 explanation text

So, we have:

  • Expensicons.Hourglass, iou.whatIsHoldTitle, iou.whatIsHoldExplain
  • Expensicons.ChatBubble, iou.holdIsTemporaryTitle, iou.holdIsTemporaryExplain
  • Expensicons.TrashCan, iou.deleteHoldTitle, iou.deleteHoldExplain
Screenshot 2023-09-23 at 5 41 09 PM Screenshot 2023-09-23 at 5 41 30 PM

Text and translations:

  • Add 'What is hold?' under iou.whatIsHoldTitle
  • Add 'Hold is our way of streamlining financial collaboration by promoting conversation ahead of approval or payment.' under iou.whatIsHoldExplain
  • Add 'Hold is usually temporary' under iou.holdIsTemporaryTitle
  • Add 'Because hold is used to clear up confusion or clarify an important detail before payment, it's not permanent.' under iou.holdIsTemporaryExplain
  • Add 'Delete whatever won't be paid' under iou.deleteHoldTitle
  • Add 'In the rare case where something is put on hold and won't be paid, it's on the person requesting payment to delete it.' under iou.deleteHoldExplain

You may also consider adding the other required resources at this time:

  • Add a new Clock icon in Expensicons.js (and the corresponding svg in assets/images/)
  • Add 'Hold' and associated translation(s) in src/languages under iou.hold
  • Add 'Hold Request' and associated translation(s) in src/languages under iou.holdRequest
  • Add 'Un-Hold Request' and associated translation(s) in src/languages under iou.unholdRequest
  • Add 'Explain why you're holding this request.' and associated translation(s) in src/languages under iou.explainHold
  • Add 'Reason' and associated translation(s) in src/languages under iou.reason
  • Add 'A reason is required when holding.' and associated translation(s) in src/languages under iou.holdReasonRequired
  • Add 'This request was put on hold. Review the comments for next steps.' under iou.requestOnHold
  • Add 'Confirm what to approve' under iou.confirmApproval
  • Add 'Approve the entire report total or only the amount not on hold.' under iou.confirmApprovalAmount
  • Add 'Confirm what to pay' under iou.confirmPay
  • Add 'Pay all out-of-pocket spend or only the amount not on hold.' under iou.confirmPayAmount
  • Add 'Pay only' under iou.REPORT_ACTION_TYPE.payOnly
  • Add 'What is hold?' under iou.whatIsHoldTitle
  • Add 'Hold is our way of streamlining financial collaboration by promoting conversation ahead of approval or payment.' under iou.whatIsHoldExplain
  • Add 'Hold is usually temporary' under iou.holdIsTemporaryTitle
  • Add 'Because hold is used to clear up confusion or clarify an important detail before payment, it's not permanent.' under iou.holdIsTemporaryExplain
  • Add 'Delete whatever won't be paid' under iou.deleteHoldTitle
  • Add 'In the rare case where something is put on hold and won't be paid, it's on the person requesting payment to delete it.' under iou.deleteHoldExplain

Consts

  • In src/CONST.ts add a new CONST.MONEY_REQUEST.HOLD entry defined as 'hold'
  • In src/CONST.ts add a new CONST.MONEY_REQUEST.UNHOLD entry defined as 'unhold'

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2Task

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions