Open trjExpensify opened 4 days ago
Triggered auto assignment to @alexpensify (NewFeature
), see https://stackoverflowteams.com/c/expensify/questions/14418#:~:text=BugZero%20process%20steps%20for%20feature%20requests for more details. Please add this Feature request to a GH project, as outlined in the SO.
Edited by proposal-police: This proposal was edited at 2024-11-23 15:51:56 UTC.
Tweaks to the Create Expense Flow
New feature
Create a new translation for Choose recipient
and Confirm details
Participant selector screen
Title it "Choose recipient"
- Change
headerTitle
toChoose recipient
or only change to it on the default case and the ifaction === CONST.IOU.ACTION.SUBMIT
Remove the "Just track it (don't submit it)" option row
- Remove
shouldDisplayTrackExpenseButton
andonTrackExpensePress
props inMoneyRequestParticipantsSelector
and all variables and functions related with these props
Add a section for "Workspaces" at the top (if you're a member of a workspace). Your primary workspace should be in the top position. That should be followed by a section for "Personal", which has your selfDM. Then followed by the existing "Recents" (if you have any that aren't already above in workspaces/selfDM) and "Contacts" sections.
Introduce two new params in getOptions
and getFilteredOptions
function shouldSeparateSelfDMChat
, shouldSeparateWorkspaceChat
. The default value is false
. In getOptions
, if it's true we will return recent workspace chats/selfDM chats in a separate variable
filterOptions
to implement the splice and search logic for recentWorkspaceChats
like recentReports
recentWorkspaceChats
and recentReports
options when we call formatSectionsFromSearchTerm
here or we can introduce a new param recentWorkspaceChats
in this functionrecentWorkspaceChats
and personal section from selfDMChat
above the recent section hereisSelfDM
field here, and if isSelfDM
is true we will not call onFinish
function.In this function we will call trackExpense
function if the first option is selfDM
const firstParticipant = val.at(0);
if (firstParticipant?.isSelfDM) {
trackExpense();
return;
}
Title it "Confirm details"
- Change the
headerTitle
toConfirm details
or only do it in the case Track/submit expense
Update the confirmation button to read: "Create $amount expense"
Optional: For changing the title and the submit button, we can only do this if canUseCombinedTrackSubmit
is true
https://github.com/user-attachments/assets/da91342b-5671-4342-bf1d-9ae107cb3075
I reached out to Fábio about taking this 💬
Popped on planning for a sec, discussing here.
Coming from here.
Background: We're experimenting with an A/B test of a combined "Create expense" flow to see if we improve the decision juncture between "Submit expense" and "Track expense" out the gate. We've seen in Fullstory that submitters are still getting wrong-footed on this page choosing the "Just track it (don't submit it!)" option row. All the while, the workspace settings actually determine whether an expense created is submitted on creation, or if it’s added to a draft report to be submitted later, either manually or automatically with scheduled submit.
Problem: When submitters choose the "Just track it (don't submit it!)" on this page, they end up creating non-reimbursable expenses in the selfDM, which leads to confusion and having no recourse to getting paid back.
Solution: Let's make a couple of tweaks to the
Create expense
flow, as follows:Participant selector screen
Confirmation page screen
CC: @danielrvidal @JmillsExpensify @Expensify/design