-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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 Requests: Individual Money Request Page, Reason Interstitial, Banner #31300
Comments
Hello, I'm Bartosz Grajdek from Software Mansion, the expert agency, and I would like to work on this task. |
thanks @BartoszGrajdek ! Let me know if you have any questions 🙇 |
In progress, addressing open questions on Slack |
In progress! |
Discussing on Slack! |
This issue is ready to go, what's blocking us now is this issue |
Working with Bartosz to iron out a few final items in the draft PR as well as make corresponding backend changes: #33124 |
Please see main issue for full-picture update: https://github.com/Expensify/Expensify/issues/274076#issuecomment-1878519877 |
Working on corresponding backend changes |
Please see https://github.com/Expensify/Expensify/issues/274076#issuecomment-1899437428 for the latest consolidated update! |
Backend changes for this under review, hoping it have it out tomorrow/Wednesday 🙏 |
First backend bugfix went out and was confirmed! Second backend bugfix now on staging 🎉 |
This is on staging, followup issues to be created for any bugs/improvements. |
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. |
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. |
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. |
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. |
Suggested Implementation Plan
Hold
option to the three dots menu when viewing individual Money Requesthold
banner when viewing held Money RequestUpdate Overflow Menu in MoneyRequestView
Overflow Menu (2nd Mockup from Left)
In
<MoneyRequestHeader
, add a newHold
entry tothreeDotsMenuItems
with a clock icon.When selected it should call the locally defined method
holdMoneyRequest()
Lastly, this
Hold
menu item will only be conditionally rendered based onReportUtils.isOnHold(moneyRequestReport)
. If so, render the 'Hold' text for the popover menu option, or 'Unhold' otherwise.Holding a request (member & admin)
holdMoneyRequest()
is called after the user taps Hold in the Overflow Menu.In the function, we'll check if
ReportUtils.isOnHold(moneyRequestReport)
evaluates to true, after which we willNavigation.navigate(ROUTES.getMoneyRequestHoldRoute( … ))
to an interstitial for the user to provide a reason for the hold request.Navigation Changes for Hold Reason Interstitial
Reason Interstitial
Under
src/pages/iou
, create a newHoldReasonPage
where we'll capture the user-provided reasoning for the hold.The structure of the page should should resemble the following:
The key implementation details here to make note of are that:
When the user confirms the reason, we Navigate back to the
MoneyRequestPage
, passing the user-provided reason.Back on
MoneyRequestPage
, fire off an API call with the following parameters:Onyx Data Response
Optimistic
Failure
Banner
In
components/ReportActionItem/MoneyRequestView.js
, right before the<View
for<ReportActionItemImage
add a new<View
for the hold banner.<TextPill
with a red background containing theprops.translate('iou.Hold')
text.<Text
containingprops.translate('iou.requestOnHold')
This
<View
is conditionally rendered based on whetherReportUtils.isOnHold(props.parentReport)
evaluates to trueThe text was updated successfully, but these errors were encountered: