Open jamesdeanexpensify opened 1 month ago
@jamesdeanexpensify, what do you think is still needed for this? Just to get an engineer to pick it up or do we need to keep fleshing out the proposal?
Just left you a comment in the doc, and then it would be great to get an engineer to pick it up and ask any remaining questions. I just thought you wanted to wait to house it under the F1 deadline.
@danielrvidal I think this is ready for an engineer whenever!
@jamesdeanexpensify now that this is in a whatsnext room/project, I imagine you should be able to recruit an engineer. I'm going to drop an update in the room but I think you should be good to go.
Posted here as a next step!
Renewed the convo here.
Job added to Upwork: https://www.upwork.com/jobs/~021831355584440701165
Triggered auto assignment to Contributor-plus team member for initial proposal review - @ikevin127 (External
)
Update beginningOfChatHistory for certain cases with fresh copy #47427
Current copy is not clear enough for new Expensify users.
Update the current copy to match the proposed copy. Updates to the language file (en.ts):
[ ] Concierge - add a beginningOfChatHistoryConcierge property specific for Concierge just before beginningOfChatHistory.
[ ] DM (aka beginningOfChatHistory) - update the beginningOfChatHistory property and add a participantNames param.
[ ] Group chat - Count the participants' names for a group chat and re-use the beginningOfChatHistory property https://github.com/Expensify/App/blob/c885f96f66f4c552308fafb81b6251daf1fb4136/src/languages/en.ts#L603 https://github.com/Expensify/App/blob/dc1407a56bfe70ee72e471c3733da9faa552590c/src/libs/SidebarUtils.ts#L530-L555
[ ] Workspace chat (aka beginningOfChatHistoryPolicyExpenseChat) - Combine the beginningOfChatHistoryPolicyExpenseChat parts 1-3 into 1 and add parameters for participantName and policyName.
[ ] #announce room (aka beginningOfChatHistoryAnnounceRoom) - Combine the beginningOfChatHistoryAnnounceRoom parts 1-2 into 1 with a parameters for workspaceName and reportName.
[ ] #admins room (aka beginningOfChatHistoryAdminRoom) - Combine the beginningOfChatHistoryAdminRoom parts 1-2 into 1 with a parameters for workspaceName and reportName.
[ ] Domain room (aka beginningOfChatHistoryDomainRoom) - Combine the beginningOfChatHistoryDomainRoom parts 1-2 into 1 with a parameter for domainRoom.
[ ] User-created room (aka beginningOfChatHistoryUserRoom) - Combine the beginningOfChatHistoryUserRoom parts 1-2 into 1 with a parameter for reportName.
[ ] Invoice room (aka beginningOfChatHistoryInvoiceRoom) - Edit the beginningOfChatHistoryInvoiceRoom property and add params for invoice sender/bill payer workspaceName and invoice/paid bill receiver workspaceName OR displayName
N/A
Update beginningOfChatHistory for certain cases with fresh copy
This is a new feature
beginningOfChatHistory
and create a new translation text for the additional text Ask questions and get 24/7 realtime support.
and add it here if the report is concierge.beginningOfChatHistory
translation as the description to This chat is with
and then update usePlusButton
to \nUse the + button to ${additionalText}, or assign a task!
OPTIONAL: We can remove or assign a task
text.
beginningOfChatHistoryPolicyExpenseChat
translations as the descriptionbeginningOfChatHistoryPolicyExpenseChatPartOne: 'This is where ',
beginningOfChatHistoryPolicyExpenseChatPartTwo: ' will submit expenses to the ',
beginningOfChatHistoryPolicyExpenseChatPartThree: ' workspace. Just use the + button.',
beginningOfChatHistoryAnnounceRoom
translation and beginningOfChatHistoryAdminRoom
as the descriptionbeginningOfChatHistoryDomainRoom
translation as the description with domain
param is the report.reportName
beginningOfChatHistoryUserRoom
translation as the descriptionbeginningOfChatHistoryInvoiceRoom
translation as the description with two extra params invoice sender/bill payer workspaceName
is the display name of the user that is invited to the invoice room and invoice/paid bill receiver workspaceName OR displayName
is the display name user that creates the send invoice or the workspace name of the workspace that we create the send invoice.For all translations, we should update the all places that we use this translation if the param is changed.
We need to make sure that the beginningOfChatHistory never gets replaced by a custom roomDescription if someone sets one. The roomDescription will instead be included/updated elsewhere (in the subheader).
We already have handled this in getRoomWelcomeMessage
function
Update beginningOfChatHistory for certain cases with fresh copy
Chat header message is not clear to new users
First of all we need to re-code all beginningOfChatHistory(all) data in reportActionsView object in a clear and consistent way. They all need to accept arguments if they need dynamic message so we can pass (e.g workspace name, recipient name, or multiple recipients names etc) rather than the current PartOne PartTwo PartThree different keys. This will be more flexible and easier to change the message in future.
Something like this: welcomeToRoom: ({roomName}: WelcomeToRoomParams) => `Welcome to ${roomName}!`,
getWelcomeMessage()
function figure out if the recipient name is Concierge since we don't have a Report util function like this ReportUtils.isSelfDM(report)
to check if user is in chatroom with Concierge.getWelcomeMessage()
figure out the way to remove the name of the client user before the recipients names message constructor loop. Similar approach in all others. This way I think messages will be more flexible and easy to change in future as well.
P.S I have only explored Expensify code now and have not contributed to Open Source before. Still reading the contribution.md file
📣 @AsfandSoomro! 📣 Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork. Please follow these steps:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>
Contributor details Your Expensify account email: asfandsoomro13@gmail.com Upwork Profile Link: https://www.upwork.com/freelancers/~0184a98fdca35057cc
✅ Contributor details stored successfully. Thank you for contributing to Expensify!
Given this is a copy update issue I'd say we can go with the first come, first served
method here and assign @mariapeever based on the posted proposal given the RCA is obvious and the solution is straight-forward.
🎀👀🎀 C+ reviewed
Triggered auto assignment to @roryabraham, see https://stackoverflow.com/c/expensify/questions/7972 for more details.
📣 @ikevin127 🎉 An offer has been automatically sent to your Upwork account for the Reviewer role 🎉 Thanks for contributing to the Expensify app!
📣 @mariapeever You have been assigned to this job! Please apply to the Upwork job and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻 Once you apply to this job, your Upwork ID will be stored and you will be automatically hired for future jobs! Keep in mind: Code of Conduct | Contributing 📖
👋 Hey @mariapeever, please leave a comment letting us know when we can expect a PR to be ready for review 🧑💻
Otherwise, if there's no response in ~48h (2 days) from time of assignment (https://github.com/Expensify/App/issues/47427#issuecomment-2332987965, 1 day already passed) we'll have to reassign the task to the contributor next in line, as per the guidelines (if I recall correctly).
[!note] If you have any questions regarding your first assignment, how does this work, or any other information feel free to ask.
@roryabraham Please correct me if the 'no response' rule has different timelines as I wasn't able to find info on this specific case.
@ikevin127 I have submitted a proposal on Upwork and have been waiting for it to get approved. I can submit a PR by the end of today.
@mariapeever Thanks for getting back. I understand the worry of contributing for the first time, allow me to explain how the process works:
[!note] In case at any stage of the deploy process, a regression is found coming from the deployed PR changes, the issue's bounty will be cut in half (-50%) for both controbutor and C+, and the regression period extends to when the follow-up fix PR is deployed to production.
@ikevin127 Thanks! Does this mean that I can create a PR before my Upwork proposal has been approved?
@mariapeever For sure, as mentioned - when the payment is due date, the BZ team member which handles the payments will make sure you accept your offer and you get paid.
Given the whole deploy and 7-days regression period process can take several days, the sooner the PR is opened, the better - but keep in mind that rushing to open the PR can lead to regressions if not tested thoroughly.
@mariapeever Any updates on the PR or whether you plan on working on this issue ? Asking because there's been 7+ days from assignment and we're looking at fixing this issue. Please let us know!
⌛ I think we should consider moving on with the 2nd proposal and assign @nkdengineer as contributor since they are the next in line. @roryabraham @jamesdeanexpensify What do you think ?
@ikevin127 Sorry for the delay. I was busier than usually the last few days. I will create a PR today.
Problem
New users often write in confused about how to use New Expensify. Key points of confusion still seem to be “How do I submit expenses?” or “How do I use this?” or are just unclear why they are looking at a chat platform. They then become frustrated or just leave us all together.
Solution
Update the
beginningOfChatHistory
copy in all rooms to be clearer and more concise, as well as remove any noise around features that don’t lead to conversion.P/S is also here in Slack.
Copy updates
Important
We need to make sure that the
beginningOfChatHistory
never gets replaced by a customroomDescription
if someone sets one. TheroomDescription
will instead be included/updated elsewhere (in the subheader).Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @ikevin127