text:
daft.read_csv with provided schema does not return dataframe with schema when has_headers=False and infer_schema=True

Describe the bug
When I provide an explicit schema to daft.read_csv the returned Dataframe ignores the provided schema and instead infers the schema.
To Reproduce
Provide a schema dictionary, but leave infer_schema as default(True).
Expected behavior
If a schema is provided it should supersede the infer_schema parameter. At minimum, if a schema is provided and infer_schema = True throw an error.
Component(s)
CSV
Additional context
No response

@desmondcheongzx could you take a look at this?

I believe the currently intended behavior is:

infer_schema controls whether or not Daft will attempt to infer the schema from CSV
schema controls a users' hints

If only infer_schema=True, then schema will just be inferred
If infer_schema=True and schema is also provided, the users' schema hints will override the inferred schema for columns where there are conflicts
If infer_schema=False, then the user should provide an explicit schema which will be used as the entire schema

Hi @jaychia , my expectations could be wrong, but as an end user I would expect schema_hints to supply schema hints, and if schema is provided I would expect no-inference. read_csv
From the docs, the related arguments are:

schema: dict[str, [DataType]– A schema that is used as the definitive schema for the CSV if infer_schema is False, otherwise it is used as a schema hint that is applied after the schema is inferred.
infer_schema: (bool) – Whether to infer the schema of the CSV, defaults to True.
schema_hints: Optional[Dict[str, [DataType] -- no specific documentation provided (though in the source code there is a deprecation warning)
has_headers: (bool) – Whether the CSV has a header or not, defaults to True

In my case, I supplied has_headers = False, infer_schema = True, schema = dict( mycolumn1=DataType.int32(), mycolumn2=DataType.string() ) and none of the column names were picked up from schema as hints, though the types were inferred without an issue with or without the schema.
In terms of actual functionality, my CSV doesn't have headers and I need to provide column names. I'm happy with the inferred types, but I need a way to supply column names. Something like: has_headers = False, infer_schema = True, schema=[ 'mycolumn1', 'mycolumn2'] and the resulting DataFrame has the expected column names.

authors: jaychia jpedrick kevinzwang

repo: Eventual-Inc/Daft


text:
Add support for multilingual notifications

Hi,
Currently, with Alma-scheduler, you can only define one notification template to send email or SMS notifications to users with the appointment details when it is created or cancelled.
Would it be possible to support overriding display strings and locations based on the user's language preferences (stored in the user's Alma record)?
At Swiss National Library we have patron from different linguistic parts of the country and we need to send notification in german, french and italian.
This works fine with Primo VE (Supports overriding display strings and localizations based on Primo interface language) but not on the Alma side.
Thank you.
Best regards,
Bruce Sciboz

Thanks for your suggestion. We'll see what we can do.

We've looked into this request and it's a bit involved technically. We'll keep this issue open, but in the meantime I assume you're sending notifications in all three languages as a workaround?

source: gharchive/issue

authors: AxelDorian jweisman

repo: ExLibrisGroup/alma-scheduler

license_type: permissive

license_source: github-api


text:
Multi-character delimiters in CSV

Does the library support multi-character delimiters? The only way I can find to control the delimiter is AutodetectSeparators, which only accepts char values.

No, that is not supported.

repo: ExcelDataReader/ExcelDataReader

license: mit

license_source: bigquery


text:
Ignore files not specified in toc during build

@choldgraf is it possible to ignore files which have not been specified in _toc.yml when building? I keep getting this error:
FileNotFoundError: The following path in your table of contents couldn't be found:

Hmmm - well this is intended behavior, because I'm assuming that the user wants to show everything that's a content file in the Table of Contents...however, perhaps this could be a config.yml key that lets people specify paths to files that will be excluded from the build...

I would find it useful - at least while I'm testing. I wonder what others think about this tho...

Yes, it might be useful --- we sometimes have half-finished lectures that we don't want in the final build.  Although my solution in that case is to keep them in a separate branch, where I'm going to add them to the TOC or I'm not be concerned about the error.  Perhaps that's good enough for your case too @najuzilu ?
Although now I read your question at the top again, @najuzilu, and the error message, I wonder if @choldgraf and I have understood correctly.  Your error message suggests that you have a path in the TOC but no corresponding file in the repo --- is that right?
If that's true can you just comment it out?

The error is confusing - it should probably provide a different error message. I have a file in the directory which is not mentioned in the TOC. When I try to build, it produces that error.

OK, then the message is confusing, as you say.  But @choldgraf has understood it correctly.
I guess you could try putting together a PR that improves the error message and, if @choldgraf agrees, that allows for ignores to be specified in the conf file.  But maybe that's a task for next week?

I would expect the following behavior in these two scenarios:

If file not referenced in TOC, a warning should be displayed that file is not referenced in TOC. There should exist a config.yml key i.e. exclude to exclude these files during build and therefore no warnings should appear if such key is specified. Currently, the build displays this exception and will not build the rest of the files. I would expect it to display a warning but continue to process the rest of the files.

If file referenced in TOC but file not found. This should definitely throw an exception and terminate the build. Currently it just displays a warning.

I think the current behavior should be flipped. Would like to know your thoughts @choldgraf @jstac

I agree with both suggestions.

so do I!

Great. I'll try to look into this more specifically some time next week as @jstac suggested.

Hey just jumping in here! Having the ability to exclude some notebooks (either through a exclude flag in the config file would be great!

hey all - thanks for the feedback! I think that I've fixed this up in https://github.com/ExecutableBookProject/cli/pull/70
We still need to find a good way to document the _config.yml file...

authors: choldgraf jstac najuzilu trallard

repo: ExecutableBookProject/cli


text:
Question about dependencies

How does this theme depend on IPython, nbsphinx, and ipywidgets? These don't appear to be used anywhere in the repo aside of setup.py.

Re: IPython - it is likely not a dependency of the theme itself, but is nice for testing code blocks as it provides the pygments syntax highlighter (which suppresses a slew of sphinx errors).
I wouldn't be surprised if the other dependencies are there for similar reasons. Breaking them out into an extras_require entry in the setup.py would be good.

Thanks for the clarification. If it's only for testing, there's also tests_require.

Yep - that's definitely correct. More generally, this repository is very much in an "this is super young and there has been almost effort made into professionalizing things yet" phase :-)
I'd be +1 on any changes that improve this so it's less confusing or bulky.

authors: akhmerov choldgraf rossbar


text:
you might want to do a version (tag) 1.0.0?

you might want to do a version (tag) 1.0.0?

done ;)

authors: Exeu tubssp

repo: Exeu/ExeuApaiIOBundle


text:
Ticket ID, must it be capital letters?

Description
Ticket ID, must it be capital letters?
Proposed solution
I hope the ticket id can support lower case.
Alternatives considered
No response
Do you want to create a pull request?
No

@shaobeichen
Please read this option: ticketIdRegex

thanks.

authors: shaobeichen tal-rofe

repo: Exlint/cz-vinyl

license: MIT


text:
[BUG] [1.20.1] Issue with crosshair when attacking small creatures

Description
First of all, I want to thank the person who created this mod, because it is one of my favorite mods.
But I'm having a very annoying problem with the crosshair. I play with the shoulder surfing camera and the crosshair in static mode because I don't like it to move on its own. The default camera was too close to the character, so using the directional buttons I moved it away, and this is where the problem comes from. Even though my character is attached to a creature and the crosshair is touching it, when I attack small creatures like spiders, turtles, or rabbits, the crosshair doesn't detect the creature, so the hit goes right through it and hits directly on the floor block you are stepping on. With large creatures like skeletons or zombies this only happens if I attack their legs, but if I attack them from the middle of their body up there is no problem.
I like the mod a lot and would appreciate it if you would fix this.
Steps to Reproduce

Login in to game
I press v to put the camera in shoulder surfing mode
I attack a small creature
Error, the attack passes through the creature, hitting the block below it

Expected Behavior
When attacking the blow deals damage to the creature
Screenshots
No response
Game Logs
https://gist.github.com/Neguillarro/3e9f347a864a696f790aa1f6f4225f02
Other Mods
No response
Additional Information
No response

Thanks for the report, can you also upload your config file for shoulder surfing (config\shouldersurfing.toml)? Does this also happen without any other mods installed?

It happens all the time, with other mods and without them. Right now the only mod I have in the folder is this one.
https://gist.github.com/Neguillarro/2a325992bdc082e637f9dea9103ab5e9

I forgot to mention that in the last games I changed the crosshair to adaptive mode, but the same thing happens as in static.

Thanks! I will look into it.

The issue has been fixed, and a new version will soon be available to download. Thanks again for the report.

authors: Exopandora Neguillarro

repo: Exopandora/ShoulderSurfing


text:
[TEST] QA of NewFeature label

QA for https://github.com/Expensify/Web-Expensify/pull/36794

Triggered auto assignment to @kevinksullivan (NewFeature), see https://stackoverflowteams.com/c/expensify/questions/14418#:~:text=BugZero process steps for feature requests for more details.

authors: MelvinBot mountiny

repo: Expensify/App


text:
Web -  App crashes when splitting bill with email "—-@—-.com"

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:

Tap on the plus sign
Select "Split Bill" and input the desired number of money, then tap "Next"
Enter the email "—-@—-.com" and tap "Next"
Observe that the app crashes

Expected Result:
The app should not crash when splitting the bill with the email "—-@—-.com"
Actual Result:
The app crashes when splitting the bill with the email "—-@—-.com"
Workaround:
Unknown
Platforms:

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

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.33-3
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/88ca9ca7-c7e7-47f4-85bc-43809f50997e
https://github.com/Expensify/App/assets/93399543/e04fafdc-1336-4ac4-a228-2a5060474156
Expensify/Expensify Issue URL:
Issue reported by: @tewodrosGirmaA
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1687860215891219
View all open jobs on GitHub

looks to be a dupe of https://github.com/Expensify/App/issues/21268

authors: abekkala kbecciv


text:
[$1000] Web -  Inconsistency bug: cursor turns to arrow on task report item

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:
1, Click on 'FAB' icon
2. Click on 'Assign task'
3. Enter title & click on 'Next' button
4. Click on 'Assignee'
5. Search for a user & select the user
6. Click on 'Confirm task' button
7. Open the chat with the user you have assigned a task to
8. Hover over the newly created task report item
Expected Result:
Cursor should turn to hand since the task report item is clickable
Actual Result:
Cursor turns to an arrow
Workaround:
Unknown
Platforms:

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

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.34-1
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/d3e33ed1-32c8-42cb-b3d0-330ef10053bb
https://github.com/Expensify/App/assets/93399543/8d14d996-872e-4b56-9d51-2fecbef7b9cb
Expensify/Expensify Issue URL:
Issue reported by: @Natnael-guchima
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1687965183006359
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0139471d08018015c7
Upwork Job ID: 1674504778229022720
Last Price Increase: 2023-06-29

Proposal
Please re-state the problem that we are trying to solve in this issue.
Cursor turns to arror on task report item.
What is the root cause of that problem?
Task report item is displayed in TaskPreview, and there is no style set to an hand.
https://github.com/Expensify/App/blob/c83b2d18b28e95075ccb2ea6bfa40aa11fa382da/src/components/ReportActionItem/TaskPreview.js#L71-L86
What changes do you think we should make in order to solve the problem?
We can add hand style to TaskPreview.
-    <View style={[styles.flex1, styles.flexRow, styles.alignItemsStart]}>
+    <View style={[styles.flex1, styles.flexRow, styles.alignItemsStart, styles.cursorPointer]}>

What alternative solutions did you explore? (Optional)
None.

report looks good 👍

Proposal
Please re-state the problem that we are trying to solve in this issue.
Cursor turns to arrow on task report action item
What is the root cause of that problem?
https://github.com/Expensify/App/blob/6cf84175e676ddf76e529038de228e7c8ce4ba4e/src/components/ReportActionItem/TaskPreview.js#L67
styles.chatItemMessage has cursor style and it overrides PressableWithoutFeedback's cursor style
What changes do you think we should make in order to solve the problem?
omit cursor in chatItemMessage like this:
 style={[styles.flexRow, styles.justifyContentBetween, _.omit(styles.chatItemMessage, 'cursor')]}

Proposal
Please re-state the problem that we are trying to solve in this issue.
Cursor should turn to hand since the task report item is clickable
What is the root cause of that problem?
TaskPreview component doesn't have pointer cursor.
What changes do you think we should make in order to solve the problem?
I think we can add pointer cursor to TaskPreview component
What alternative solutions did you explore? (Optional)

@Natnael-Guchima offer sent!  https://www.upwork.com/nx/wm/offer/25659492

I have accepted the offer. Thanks @slafortune

Paid!

authors: Natnael-Guchima StevenKKC kbecciv situchan slafortune yh-0218


text:
[$1000] There is a wrong link in the manage your bills

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:

Open the website
Settings > Workspaces
click any workspace from the list
click bills
Observe the text under managing your bills

Expected Result:
There should be a valid link in which the recipients will be sent and a "copy to clipboard" button
Actual Result:
Ask your vendors to forward their invoices to example.com@expensify.cash and we'll scan them for you to pay.
Workaround:
Unknown
Platforms:

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

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.57-3
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/38435837/c89078ec-4d80-442f-8a88-8d7079120d1c

Expensify/Expensify Issue URL:
Issue reported by:  @misgana96
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1692087374120429
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~014aec13bc46c67f6b
Upwork Job ID: 1696167080456757248
Last Price Increase: 2023-09-11

user.isFromPublicDomain  is evaluating to true thats why the [example.com@expensify.cash] text is shown and the copy to clip board button is not rendered

@maddylewis What is the expected behaviour here? When we click on View All bills we should take the user to dev expensify? or what? can you please put a valid URL here for our reference?

Contributor details
Your Expensify account email: abdelrahmanalbiruni@hotmail.com
Upwork Profile Link: https://www.upwork.com/freelancers/albiruni

Proposal
Please re-state the problem that we are trying to solve in this issue.
Clicking on bills from within Settings > Workspaces > Worskspace-Name should show the user a relevant email address along the lines of (<user's-email-domain>@expensify.cash) within a Copy-to-Clipboard interface.
What is the root cause of that problem?
Basic:
For all users whose email addresses contain a public domain (like gmail.com; yahoo.com; publicCompanyWebsite.com; etc), the email text is hard-coded to 1) be "example.com@expensify.cash" instead of a domain specific email address and 2) to lead to the discussion forum, instead of being within a Copy-to-Clipboard component.
Detailed Conjecture:
I believe this part was hard-coded by a developer "to be dealt with later", because making the correct resolution for addresses like marc@yahoo.com requires some thought/discussion. Should it be yahoo.com@expensify.cash OR yahoo@expensify.cash OR .... The first option breaks the email format while the second leaves room for clashes in cases like "@abc.com vs @abc.edu".
What changes do you think we should make in order to solve the problem?

We need to make a well-thought-out resolver function/class here that resolves to an appropriate "bill receiving" email address against all possible user email addresses. For example marc@lemon.edu and ahmed@lemon.edu should resolve into something like lemon-edu@expensify.cash OR lemon@expensify.cash; whichever is architecturally most convenient for Expensify. We need to be mindful of clashes, etc while designing this resolver.

Contributor details
Your Expensify account email: talha_jav@rocketmail.com
Upwork Profile Link: https://www.upwork.com/freelancers/~014b6101992aa81143

📣 @AbubakerShekhani! 📣 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:

Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.

Format:

Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

Contributor details
Your Expensify account email: abubakershekhani@yahoo.com
Upwork Profile Link: https://www.upwork.com/freelancers/~01d5969bc1374cc80e

@allroundexperts - lmk if you have availability to review the proposals for this one! if not, I'll reach out to another C+ to get started. ty!

Proposal
Please re-state the problem that we are trying to solve in this issue.
When logging in from a public domain account i.e company account and navigate to workspaces and click Bills, the text shows hardcoded email address  "example.com@expensify.cash" clicking on it takes the user to document explaining how to pay company bills in expensify.
What is the root cause of that problem?
The root cause of the problem is for email accounts that are termed as company accounts by the back-end are shown hardcoded link.
<Text>
    {props.translate('workspace.bills.askYourVendorsBeforeEmail')}
    {props.user.isFromPublicDomain ? (
        <TextLink onPress={() => Link.openExternalLink('https://community.expensify.com/discussion/7500/how-to-pay-your-company-bills-in-expensify/')}>
            example.com@expensify.cash
        </TextLink>
    ) : (
        <CopyTextToClipboard
            text={`${emailDomain}@expensify.cash`}
            textStyles={[styles.textBlue]}
        />
    )}
    <Text>{props.translate('workspace.bills.askYourVendorsAfterEmail')}</Text>
</Text>

What changes do you think we should make in order to solve the problem?
Instead of showing hardcoded link for those accounts that are termed as company accounts i.e public domains by the back-end, the text can be changed to better guide the user.
Suggested solution screenshot attached.

For email accounts that are termed not to be company accounts i.e not public domain by the back-end, the text is shown correctly with the appropriate email address and copy to clipboard button. screenshot attached.

What alternative solutions did you explore? (Optional)
The back-end decides on which account is termed to be public domain. Based on that if isFromPublicDomain is true, then based on existing logic the user is logged in from company account and should be shown the guide on how to pay company bills in expensify.
If the back-end decides the account logged in is not from public domain i.e not company, then the user is shown the below text
"Ask your vendors to forward their invoices to ...  and we'll scan them for you to pay."

just seeing this - ill follow up to confirm the expected behavior.

alright, sorry for the delay here.

Ask your vendors to forward their invoices to example.com@expensify.cash and we'll scan them for you to pay.

This is expected behavior. That's the instruction to have vendor bills forwarded to someone's Expensify account.

When we click on View All bills we should take the user to dev expensify? or what? can you please put a valid URL here for our reference?

When clicking "View all bills" you should be taken to OldDot > the reports page > and filter bills. I don't have any bills in this account which is why 0 reports show:
https://github.com/Expensify/App/assets/38016013/16f308b6-4a20-4ea9-8551-15e7f63d87f7

that said, i think this is actually working as expected and any changes to this behavior would touch OldDot / should be considered a new feature request.

@allroundexperts - based on those details, what do you think? i think we can actually close this one but would love your input.

Ask your vendors to forward their invoices to example.com@expensify.cash and we'll scan them for you to pay.
@maddylewis But when clicking the link it goes to external page which is a blog. Is it expected?

Screencast from 13-09-2023  3:01:45 ከሰዓት.webm

But when clicking the link it goes to external page which is a blog.

Will you tell me exactly what you are clicking that takes you to the community page? but, yes, that's our resource on paying bills in expensify, so that's expected.

But when clicking the link it goes to external page which is a blog.

Will you tell me exactly what you are clicking that takes you to the community page? but, yes, that's our resource on paying bills in expensify, so that's expected.

Action Performed:
2. Open the website(https://new.expensify.com/)
3. Settings > Workspaces
4. click any workspace from the list
5. click bills
6. Click the link from Ask your vendors to forward their invoices to example.com@expensify.cash and we'll scan them for you to pay.

https://github.com/Expensify/App/assets/48551032/9f61fba3-2da0-432e-b356-3118aaa9d2c6

Okay, so you're clicking the example email address/the text above it and that's what takes you to the help doc. The only thing I would suggest updating is the hyperlink.

Ask your vendors to forward their invoices to exampledomain@expenisfy.cash and we'll scan them for you to pay. More details on this feature are here.

Or

Ask your vendors to forward their invoices to exampledomain@expenisfy.cash and we'll scan them for you to pay.

Okay, so you're clicking the example email address/the text above it and that's what takes you to the help doc. The only thing I would suggest updating is the hyperlink.

Ask your vendors to forward their invoices to exampledomain@expenisfy.cash and we'll scan them for you to pay. More details on this feature are here.

Or

Ask your vendors to forward their invoices to exampledomain@expenisfy.cash and we'll scan them for you to pay.

I feel the same thing. The only thing to do is just update the hyperlink

@allroundexperts Updated proposal by the way I was first to suggest changing the hyperlink text.

I would agree that @sourcecodedeveloper was first to suggest changing the hyperlink text in there proposal. As such, let's

Sorry, this is not the case.
@allroundexperts  I was the first one to suggest that the link is fine and the text needs to be changed.
@maddylewis @MelvinBot

Thanks for pointing out @AbubakerShekhani. I just checked again and it seems like I missed your proposal due to the long conversation happening here. You indeed suggested this first.
Let's go with @AbubakerShekhani's proposal.
🎀 👀 🎀 C+ reviewed

Thank you for the prompt response.
Please let me know if it needs any further steps from my end.

tbh, i don't think we should update this. the community post that is linked to the existing text is going to be outdated in the next few weeks after the Community to HelpDot migration is complete.
we'll be mass-updating a ton of in-product links then, and i think we can just hold off on this one until then.

closing since we'll be mass updating links in the next couple of weeks.

authors: AbubakerShekhani Al-nitak-external b4s36t4 m-natarajan maddylewis misgana96 sourcecodedeveloper talhajavedmukhtar


text:
[$500] Android- IOU- Add stop point, Use your location shows error

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: 1.3.81-4
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause-Internal Team
Slack conversation: @
Action Performed:

Launch app
Tap on any Workspace chat
Tap plus icon
Select Request money --- Distance
Enter start and finish way points
Tap Add stop point
Tap " Use your location "

Expected Result:
Tapping " Use your location " must detect user's location.
Actual Result:
Tapping " Use your location " Shows error message "we were unable to find your location".
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/115492554/e423ef61-0488-4e9a-9fd3-8f983daf92d1

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01dcea4f09880ba901
Upwork Job ID: 1712370069682274304
Last Price Increase: 2023-10-12

Proposal
Please re-state the problem that we are trying to solve in this issue.
On Android, when adding a stop, "Use your location" triggers an error.
What is the root cause of that problem?
This is an intermittent error which occurs due to the location request failing due to a timeout which could be caused by a bad GPS signal. It can also be recreated by turning off the GPS signal in the Android emulator settings.
The returned error data for this is:
{"ACTIVITY_NULL": 4, "PERMISSION_DENIED": 1, "POSITION_UNAVAILABLE": 2, "TIMEOUT": 3, "code": 3, "message": "Location request timed out"}

What changes do you think we should make in order to solve the problem?
There are two things we can do to improve the experience in this case:

Increase the timeout for the getCurrentPosition call in the UserCurrentLocationButton component. We can set this to 30000 or any value that is determined to be reasonable.

https://github.com/Expensify/App/blob/9699988a0354e619b04d5b47c1b5b29936952c38/src/components/UserCurrentLocationButton.js#L71

Display a more descriptive or helpful error message if the error code is 3 which indicates that the request timed out.

What alternative solutions did you explore? (Optional)
None.

Not overdue. Going to triage today

I don't think this is a bug. As the proposal above mentions, this is because of a GPS issue. This is working for me. If there is a GPS issue, the error message we're displaying now provides sufficient direction to the user for next steps.

Closing!


text:
[$500] Web - Composer - 'Write something...' is not vertically center aligned when clicking 'Go back to hom

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: v1.4.18-2
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Login to ND staging
Open new tab > enter https://staging.new.expensify.com/anything
in address bar
Press enter
Click on 'Go back to home page' link

Expected Result:
'Write something...' should be vertically aligned within the composer
Actual Result:
'Write something...' is not vertically aligned within the composer
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/Expensify/App/assets/93399543/f7767b23-0026-430d-8439-87585c3389e7
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0164dc28319bb85e74
Upwork Job ID: 1740374460272353280
Last Price Increase: 2023-12-28

Proposal
Please re-state the problem that we are trying to solve in this issue.
The composer is not styled correctly after navigating from NotFound route.
What is the root cause of that problem?
This is happening because the Composer is being rendered in the background of the NotFound page with the numberOfLines = 0, as it's trying to fetch the value from Onyx by a non-existing report ID here:
https://github.com/Expensify/App/blob/d76eaef1dc405e8be00d08509b6255063d61a037/src/pages/home/report/ReportActionCompose/ComposerWithSuggestions/ComposerWithSuggestions.js#L616-L621
What changes do you think we should make in order to solve the problem?
We should set the initial value of the numberOfLines to 1:
        numberOfLines: {
            key: ({reportID}) => `${ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT_NUMBER_OF_LINES}${reportID}`,
            // We might not have number of lines in onyx yet, for which the composer would be rendered as null
            // during the first render, which we want to avoid:
            initWithStoredValues: false,
            initialValue: 1,
        },

What alternative solutions did you explore? (Optional)

@slafortune Can you confirm dupe and close this?

@slafortune Bump on the above.

Sorry for the delay - Yes, closing this as a dupe 👍

authors: kbecciv paultsimura shubham1206agra slafortune


text:
Request money - System message shows negative amount briefly when paying request

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: 1.4.26-1
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

[User A] Request money from User B
[User B] Navigate to chat with User A
[User B] Click on the preview to go to IOU report
[User B] Click Pay elsewhere

Expected Result:
The system message shows the correct amount
Actual Result:
The system message shows negative amount briefly
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/a4471bba-716e-4874-8a94-0a7d78ac5aad
View all open jobs on GitHub

#wave6-collect-submitters

Taking a look now 👀

This is a very minor problem, but a new problem nonetheless. None of the PRs we deployed recently stand out to me, so I'll debug it and see if I can figure out what's causing the problem.

I tested this offline so I can inspect the optimistic data. It looks like the html message is right but the iouMessage is wrong.

Asked for feedback on whether we should revert (again again) in Slack here


text:
Workspace - Custom avatar uploaded offline is inconsistent after deleting workspace

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: v1.4.32-2
Reproducible in staging?: y
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Issue found when executing PR https://github.com/Expensify/App/pull/32986
Action Performed:
Precondition: There is no workspace.

Go offline.
Create a new workspace.
Upload a custom avatar for the workspace.
Delete the workspace.
Go to the archived workspace chat or room like #admin.
Click room header.
Click on the avatar.
Go online.

Expected Result:
n Step 7, the default avatar should be the same in full screen view.
In Step 8. after going online, the default avatar should remain.
Actual Result:
n Step 7, the default avatar is different in the full screen view (different background color).
In Step 8. after going online, the avatar reverts to custom avatar that is uploaded offline.
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/796c8605-74e8-4fdc-8401-ef8042aa0750
View all open jobs on GitHub

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

This is an edge case and not blocking the users, so I am demoting this one.

Raised this in the PR https://github.com/Expensify/App/pull/32986#issuecomment-1868960994
Decided to go with creating another issue for it @madmax330 @FitseTLT

Proposal
Please re-state the problem that we are trying to solve in this issue.
Custom avatar uploaded offline is inconsistent after deleting workspace
What is the root cause of that problem?
This a BE issue where if the workspace is all created, update avatar and delete workspace offline and it sets the avatar to the non-default avatar set by the user. I think the reason might be related to the order of the requests of the Updating of the Avatar and Deletion of the workspace.
What changes do you think we should make in order to solve the problem?

This should be fixed in BE but there is a simple fix in FE we can follow, which is to check if it is an archived workspace before returning the workspace avatar here
https://github.com/Expensify/App/blob/83a7535cf5b691fc8965607327d651d10a283bd8/src/libs/ReportUtils.ts#L1450-L1453
 const policyExpenseChatAvatarSource =
        allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${report?.policyID}`]?.avatar && !isArchivedRoom(report)
            ? allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${report?.policyID}`]?.avatar
            : getDefaultWorkspaceAvatar(workspaceName);

What alternative solutions did you explore? (Optional)

I will try to find a wave/vip to put this into, but I checked and we are not blocking policy changes if the policy is deleted, so we might want to start doing that.

bumped this in #vip-vsb today.

Hey @miljakljajic do you think we have a wave for this or maybe we should close this?

I think we can close - feels more like polish to me. Thank you @rlinoz!

authors: FitseTLT getusha kbecciv miljakljajic rlinoz


text:
Search - "fake" is displayed at From and To fields for split expenses

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: 1.4.71.0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Issue found when executing PR https://github.com/Expensify/App/pull/41615
Action Performed:

Log in with an expensifail account with at one split expense
Navigate to Profile - Troubleshoot - New Search page

Expected Result:
Fields should be populated with valid data
Actual Result:
"fake" is displayed at From and To fields for split expenses
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
Add any screenshot/video evidence

View all open jobs on GitHub

@roryabraham  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

not a blocker - hidden feature

I can take this one @roryabraham, since it's related to Search

cool

Still happening in some instances. I have another PR in review to filter report types and I need to work on another issue for tracked expenses too.

I think this should be solved by https://github.com/Expensify/Auth/pull/10927 too, since the reportID used for these split transactions is -2 and we'll filter these out, showing only the 1:1 transactions created from the split.

Hmm so that PR didn't solve this issue. Gonna work on a separate fix.

I think we can close this one for now since the PR was merged. Maybe we'll have another edge case of this issue, but we can reopen it then.

authors: lanitochka17 luacmartins roryabraham


text:
'You location' button is displayed on distance request thumbnail

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: 1.4.80-16
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):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause internal team
Slack conversation:
Action Performed:

Navigate to a workspace chat
Make a distance request
Open the IOU report

Expected Result:
There shouldn't be 'Your location' button on the thumbnail
Actual Result:
There is 'Your location' button on the thumbnail
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
https://github.com/Expensify/App/assets/38435837/ac1d9c13-1a10-4ddf-a0a6-a2c040227a94

View all open jobs on GitHub

@lschurr 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

We think that this bug might be related to #wave-collect - Release 1

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

'You location' button is displayed on distance request thumbnail

What is the root cause of that problem?

We always display 'Your location' button:
https://github.com/Expensify/App/blob/e66ae37d8cf4c4ea2a8c18bae48763fd0a734982/src/components/MapView/MapView.website.tsx#L256
And we have a similar logic in MapView.native.tsx as well.

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

In this logic:
https://github.com/Expensify/App/blob/e66ae37d8cf4c4ea2a8c18bae48763fd0a734982/src/components/ReportActionItem/ReportActionItemImage.tsx#L80-L83
We integrate a map view component to preview the distance map while awaiting the backend to provide the map preview in image format for the IOU report. The ConfirmedRoute component is intended to match the output that the backend will eventually deliver. However, in the staging environment, there are significant discrepancies between the behavior of the ConfirmedRoute component and the backend's expected output:

The ConfirmedRoute display the 'Your location' button in the top right (main bug).
The blue dot indicates that it is the current user location.
When the ConfirmedRoute loaded, it focus on the current user location and then, it animates to the routes. But the expected is, ConfirmedRoute always display the routes instead of the current user location initially.

Based on the above, I propose a solution following by the below steps:

Create a new param in MapView (shouldDisplayUserLocation with default value is false for example). We can consider using the existed param, interactive.

Then, we just display this component:
https://github.com/Expensify/App/blob/e66ae37d8cf4c4ea2a8c18bae48763fd0a734982/src/components/MapView/MapView.website.tsx#L255
if shouldDisplayUserLocation is true.

Then, just display this component:
https://github.com/Expensify/App/blob/e66ae37d8cf4c4ea2a8c18bae48763fd0a734982/src/components/MapView/MapView.website.tsx#L231
if shouldDisplayUserLocation is true.

Then, an additional condition && shouldDisplayUserLocation to this condition:
https://github.com/Expensify/App/blob/e66ae37d8cf4c4ea2a8c18bae48763fd0a734982/src/components/MapView/MapView.website.tsx#L240

Then, add a new variable in MapView.website.tsx:

 const initialViewState = useMemo(() => {
            if(!shouldDisplayUserLocation){
                if(!waypoints){
                    return undefined
                }
                const {northEast, southWest} = utils.getBounds(
                    waypoints.map((waypoint) => waypoint.coordinate),
                    directionCoordinates,
                );
                return {
                    zoom: initialState.zoom,
                    bounds: [northEast, southWest]
                }
            }
            else {
                return {
                    longitude: currentPosition?.longitude,
                    latitude: currentPosition?.latitude,
                    zoom: initialState.zoom,
                };
            }
        }, [waypoints, directionCoordinates, shouldDisplayUserLocation]);

and use it in this logic instead:
https://github.com/Expensify/App/blob/e66ae37d8cf4c4ea2a8c18bae48763fd0a734982/src/components/MapView/MapView.website.tsx#L222

Finally, use shouldDisplayUserLocation={true} in where want to display the 'Your location' button.

What alternative solutions did you explore? (Optional)
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.

Reviewing shortly

3. Then, just display this component:
https://github.com/Expensify/App/blob/e66ae37d8cf4c4ea2a8c18bae48763fd0a734982/src/components/MapView/MapView.website.tsx#L231
if `shouldDisplayUserLocation` is `true`.

Can you explain why we should only show markers (routes) when shouldDisplayUserLocation is true?
I believe we still want to show routes on the thumbnail.

@hungvu193 That marker is to display the blue dot, not the routes:
https://github.com/Expensify/App/blob/e66ae37d8cf4c4ea2a8c18bae48763fd0a734982/src/components/MapView/MapView.website.tsx#L231-L237
So I mean that we just display the blue dot if shouldDisplayUserLocation is true. The waypoints is still as it is.

That marker is to display the blue dot, not the routes:

Oops, my bad I was chasing wrong mentioned code 🥶 .
Thanks for proposals everyone. I believe we want to hide that blue dot along with You location button.  (cc @lschurr for confirming this one)
In this case, I'd go with @truph01 's proposal here.
🎀 👀 🎀  C+ reviewed

Hey @Krishna2323, I chose @truph01 proposal because it has more detail about RCA and solution.
I don't think

We can use the interactive prop to hide the button for both web and native.

or

We can also introduce a new prop for hiding the button and pass that prop MoneyRequestView to hide the button, similar to interactive prop.

is detail enough. I know that contributors are always under pressure when posting proposals, but please keep them clear and more understandable 🙏

Sorry to let you down, but if you read selected proposal, you can see the different right?

We integrate a map view component to preview the distance map while awaiting the backend to provide the map preview in image format for the IOU report. The ConfirmedRoute component is intended to match the output that the backend will eventually deliver. However, in the staging environment, there are significant discrepancies between the behavior of the ConfirmedRoute component and the backend's expected output:

This's what I'm looking for.
And I don't think it's straight forward enough to put in that short explanation, as I mentioned here.
Anyway, I'll let @mountiny decide.

I think my above answer is clear enough. However, that's just my thoughts. Since then I raised an internal discussion here: https://app.slack.com/client/E047TPA624F/C02NK2DQWUX
I'll let you know ASAP when we have final decision. Thanks for your patient 🙏

I agree @truph01 proposal is a bit more detailed and such we are going to proceed with theirs
Thanks everyone for your proposals, let's move on and focus on other bugs/features
@truph01 please raise the pr

@hungvu193 PR https://github.com/Expensify/App/pull/43630 is ready for review.

Payment summary:

Contributor: @truph01 $250
Contributor+: @hungvu193 $250 (paid in Upwork)

@truph01 - Are you paid via NewDot or is the automation on the comment incorrect?

@lschurr The automation looks incorrect, I usually get paid via Upwork.
My Upwork profile link is https://www.upwork.com/freelancers/~01c880ca813fdd85ec
Can you send me the offer?

Yep! Just sent the offer @truph01

@lschurr Offer accepted TY!

This is complete :)


text:
[Workspace Feeds] Create a loading state for creating card and provisioning a policy for cards

Problems
Both - creating cards and provisioning a policy for Expensify cards - are tasks in the backend that rely on third-party services, and we cannot optimistically take these actions in the App. Right now, we do not wait for a successful response from the server, which in some cases (especially if the card program provisioning fails), leads to bad UX.
Coming from this thread
Solution
Let's add a loading/ waiting/ spinner state for the user once they create a card or when they choose a VBBA bank account as a settlement bank account. We will wait for 200 successful API response before proceeding and if the call fails, we will show them the error message straight away and we won't lead them to failure on other commands.
Can you please mock how these should look like? In case of provisioning the policy for cards, I think its such a rare moment its also work a celebration in the product so maybe some fireworks would be worth it there

Sorry no need for b0 person

We should use the button + spinner combo for all places where we need to wait for the response:

As for the bank account selection flow we can either do the same and add a success screen:

Or we could use the bank account illustration as a loading state:

I think if the loading time is likely to be multiple seconds, then maybe use the bank account illustration. If it's relatively short, then use the loading button.
cc @Expensify/design for thoughts too

Totally agree with that Jon. If we know it's typically at least a few seconds, let's use the animation instead of the loading spinner.

Also totally agree with Shawn and Jon above!

Agreed with Jon, Shawn and Danny.
@koko57 Would you want to take this one on?

Added the copy label here just so we can confirm the copy in the mocks above is what we are happy with

Also, is the Verifying bank account... screen meant to sit for a few seconds, OR is there a chance it will take a longer time via manual checks so they'll need a way out of that screen + a way to get notified whether or not their bank account was approved later on?

@mountiny yep, of course! Happy to work on this one 🙂

The screens titled as bank account verified and verifying - that's where to confirm the copy please.
Yes there is a chance of manual verification needed, @koko57  that is the waitlist nvp btw
In that case the screen should lead them to concierge page. Then the card page will already have a modal pointing them to concierge

These screens.
@dubielzyk-expensify I wonder then if we should have a special screen as the final one in case the bank account was put on a waitlist and we need to verify that manually. We should be able to check that by looking for the waitlist nvp and tell the user they have to go to concierge where there should already be a message with instructions

@mountiny @jamesdeanexpensify I'm wondering - will we ever have the case that the account that is not verified (on the waitlist) will appear on the bank account list? (comment) Do we need any other validation? And for bank accounts we additionally filter out eligible bank accounts.

The waitlist is before you are provisioned for the expensify cards when you choose that bank account @madmax330 so I would say its possible

Can you explain what the waitlist means in simple terms? 😇
But that being said, I think something like what we did for VBA could work:

Just need confirm I've understood it correctly and likely @jamesdeanexpensify will have to fix my copy 😅

Mock looks good to me though, nice one Jon!

Oh! Actually for the One more step screen - I remembered we discussed a similar screen here @dubielzyk-expensify but I'm not sure which one we landed on. Could we just use whatever we used there, instead, to make things more consistent?

We could use similar language, but it sounds like this is one where they actually have to go to Concierge for next step? If there is a wait, then I agree, but from the wording above I interpreted it as next steps immediately available.

ok, so for success screen I should use this image and this copy?

and for the Veryfing step? Which design should I use?

@dubielzyk-expensify For waitlist, I think you got it right; we basically need more details from them about the business and the bank account before we can offer them the line of credit/ decide what the limit will be, and they need to talk to the concierge to provide those details. When they are put on this waitlist, they should get an automatic message in the concierge. We also already have a special view on the cards page when this happens so that will also guide them to concierge
Seems like we are sorted for this one right? @koko57

I think this one on the left for verifying
 and then if the waitlist is added we show this one

May I ask for the puzzle illustration exported as SVG? I cannot find it in the project

I think Jon might have signed off for the day, so here you go: emptystate__puzzlepieces.svg.zip
It should be displayed at 148x154

@shawnborton thanks a lot! 😊

Just making sure we're incorporating these edits to the copy. Is that right? Thanks!

Thank you Shawn!

Not overdue

Sorry for the delay - still working on it, I had some other responsibilities that I needed to take care of in the meantime. Will do my best to open the PR for this issue today/tomorrow.

Thanks for the update

It's a Lottie animation

ok, thanks for confirmation! I've already used that one 🙂 I still have to polish the logic and do some code clean-up, so unfortunately I won't be able to open the PR today, but it should be ready tomorrow.

and another question - now we get 200 when the domain is properly provisioned and 200 with cardOnWaitlist otherwise - is there a possibility that we get an error? In such case should I also show the screen with the puzzle?

I'm almost ready to open the PR but I have one problem. I'm getting this:

as a response from OpenPolicyExpensifyCardsPage when I open Expensify Card on a new workspace.
After I choose an account that was added to another workspace I get
 the same response.
And the problem is - how can I differentiate between the state of verification to show either the bank account list to choose and the verification screen with the puzzle?
cc @mountiny

@koko57 I see where the issue is so I updated the waitlist nvp and Max will review https://github.com/Expensify/Auth/pull/12873
we will add the underscore too.
There is a structure problem with the nvp though, essentially it only hold one waitlist information at a time for the particular user, so as you set up another domain that might get on the waitlist, the previous values are just overwritten by the new one. Its not a map per domain which is what we would need in this case
So for now it might wokr well for that one workspace which is a mainline case and we will look into how to make it scale better

ok, I understand. So it's better to hold on opening PR here?

Nono, lets just go ahead, I think that what you ran into is very edge casey for normal user, they would set up the cards on one workspace and be done, most likely they would not try to set up the cards on multiple ones at the same time (being on a waitlist for multiple workspaces

ok, so I will test it for a new user and a new workspace and will open the PR if everything is ok

Yes, but even for the existing user, the NVP would be correctly set after you try to setup the policy.
I have made updated to the backend so we will return the nvp to the client only if the nvp is specific for the policy settings page you are seeing

I was about to open the PR but I'm having a strange problem with the animation - it's not changing although it should. I also need to do some style improvements to make the content on the same height.
https://github.com/user-attachments/assets/2cad5d5b-c93f-4920-9dfe-fa59d91c68a5

BTW, maybe as a follow-up we could make this loader from VBBA flow similar to the one used here - I mean with centered content and a title text (but we would need a new copy)

wdyt? @shawnborton @dubielzyk-expensify

Yes we definitely need to make it match the Verifying one in terms of styles/text layout/etc.
It also looks like the illustration and page title are knocked back or have an opacity set or something, which they shouldn't.

Totally agree with both of you.

I fixed the problem with Lottie animation not changing, although it's very strange that it didn't work properly when extracted to a separate component. I need to fix the styles and test it, and I'm opening PR shortly.

@mountiny is payment required here? I saw your comment:

Sorry no need for b0 person

@mountiny The PR was created after we handled the payment for the project

In this time (after settling payment for the project), there is only me working as C+ on all issues. So that, could we handle this issue separately?

@mountiny What do you think about my above comment?

Offer sent @DylanDylann

@bfitzexpensify Accepted, TY!

Paid out!

authors: DylanDylann bfitzexpensify dannymcclain dubielzyk-expensify jamesdeanexpensify koko57 mountiny shawnborton


text:
Hybrid app- New app window opens when logging in via magic link with 2FA set up

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: v9.0.50.0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: No
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/5095575
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:
Precondition: existing account with 2FA enabled

Open Hybrid app
Tap on Continue with Email
Enter email of account from precondition and tap Next
Navigate to email app and tap on magic link

Expected Result:
Hybrid app should open and 2FA code page should be displayed.
Actual Result:
Hybrid app is opened, but "Welcome!" log in page is shown.
If you background the app you can notice that magic link opened new app window, and there 2FA code page is displayed.
Workaround:
Unknown
Platforms:

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

[ ] Android: Standalone
[x] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/99085584-1273-41ca-b6ff-1dba5c333257

View all open jobs on GitHub

Not overdue

Not reproducible

Issue is still reproducible on the latest build 9.0.58-1
https://github.com/user-attachments/assets/da1aaf53-b489-4f98-b0f1-fc7627a626fa
Issue reproduce with account without 2FA setup, in this scenario the new app window is auto focused but if you background the app you can notice the previous window is still there
https://github.com/user-attachments/assets/c8af58a3-921a-4810-afbe-48488548bc6a

Not overdue

Will add to CRITICAL

cc @Julesssss @staszekscp

I think that we will deprecate the new app soon, which will preclude the need for this issue

#51013.docx
Hello,
Attached is the document that provides solutions for the aforementioned bugs. Please review it.
Thank you.

Hey there! Could you test if the issue persists? I think it should be solved here: https://github.com/Expensify/Mobile-Expensify/pull/13288

Added retest label

Not overdue

Issue not reproducible during KI retests. (First week)

authors: izarutskaya lanitochka17 muttmuure mvtglobally staszekscp technfusion


text:
Chat - "Typing" isn't visible when someone from another account has longer email is typing

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:

Lunch the app
Log in with any account ( Account A)
Log in with another account where you don't have any last and first name to sets up ( Account B)
Start typing from Account B to Account A

Expected Result:
"Typing" is visible when someone from another account  has longer email without name is typing
Actual Result:
"Typing" isn't visible when someone from another account has longer email without name is typing
Workaround:
Unknown
Platform:

Where is this issue occurring?

iOS
Android
Mobile Web

Version Number: 1.1.4.0
Reproducible in staging?: Yes
**Reproducible in production?:**Yes
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:

Expensify/Expensify Issue URL:
Issue reported by: Applause
Slack conversation:
View all open jobs on GitHub

Triggered auto assignment to @timszot (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Proposed Solution (If consider External)
We need to update code within src/pages/home/report/ReportTypingIndicator.js
i..e Add  ellipsizeMode="middle" for Text component i..e After line 62, 77, and 94 , So it shows ... in between long text.
https://github.com/Expensify/App/blob/e70c1eb1940352f3abeee27b0168fcc736e67366/src/pages/home/report/ReportTypingIndicator.js#L57-L66
https://github.com/Expensify/App/blob/e70c1eb1940352f3abeee27b0168fcc736e67366/src/pages/home/report/ReportTypingIndicator.js#L72-L83
https://github.com/Expensify/App/blob/e70c1eb1940352f3abeee27b0168fcc736e67366/src/pages/home/report/ReportTypingIndicator.js#L89-L98
i.e. Add add ellipsizeMode="middle"  at three places i..e After line 62 (for Single User), 77 (for Two User), and 94 (for More than two user) as shown under.

<Text
     ...
     numberOfLines={1}
     ellipsizeMode="middle"       // *** Add this line
 >
     {getDisplayName(this.state.usersTyping[0])}
     {` ${this.props.translate('reportTypingIndicator.isTyping')}`}
 </Text>

<Text
    ...
     numberOfLines={1}
     ellipsizeMode="middle"     // *** Add this line
 >
     {getDisplayName(this.state.usersTyping[0])}
     {` ${this.props.translate('common.and')} `}
     {getDisplayName(this.state.usersTyping[1])}
     {` ${this.props.translate('reportTypingIndicator.areTyping')}`}
 </Text>

<Text
    ...
     numberOfLines={1}
     ellipsizeMode="middle"     // *** Add this line
 >
     {this.props.translate('reportTypingIndicator.multipleUsers')}
     {` ${this.props.translate('reportTypingIndicator.areTyping')}`}
 </Text>

Important: ellipsizeMode="middle" works for  IOS and Android as shown under. But Not Support in Web, Mobile Web and Desktop.
iOS

Android

Triggered auto assignment to @bfitzexpensify (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Proposal
Because ellipsizeMode doesn't work for 3 of 5 platforms, my recommendation would be, let's split the content into their individual Text blocks and use flex: row.
An example implementation:
<Text
    style={[
        styles.chatItemComposeSecondaryRowSubText,
        styles.chatItemComposeSecondaryRowOffset,
    ]}
    numberOfLines={1}
>
    {getDisplayName(this.state.usersTyping[0])}
</Text>
<Text
    style={[
        styles.chatItemComposeSecondaryRowSubText,
        styles.chatItemComposeSecondaryRowOffset,
    ]}
    numberOfLines={1}
>
    {` ${this.props.translate('common.and')} `}
</Text>
<Text
    style={[
        styles.chatItemComposeSecondaryRowSubText,
        styles.chatItemComposeSecondaryRowOffset,
    ]}
    numberOfLines={1}
>
    {getDisplayName(this.state.usersTyping[1])}
</Text>
<Text
    style={[
        styles.chatItemComposeSecondaryRowSubText,
        styles.chatItemComposeSecondaryRowOffset,
    ]}
    numberOfLines={1}
>
    {` ${this.props.translate('reportTypingIndicator.areTyping')}`}
</Text>

Anyway, each of the content is rendered separately.
We can even reduce the repetition of <Text> with chatItemComposeSecondaryRowSubText and styles.chatItemComposeSecondaryRowOffset styles.

@bfitzexpensify Any updates on this one?

Sorry @akshayasalvi — currentlly looking for an engineer to review the proposal. Hang tight!

That's right, the original issue is that a person with a long email address typing. For multiple users, we anyway show A and B or A + 2, etc.

Ah, can someone clarify when and how we display when multiple users are typing? Does this happen in group messages? I would have thought we'd just show something generic like "Multiple people are typing" when there is more than 1.

Ah, can someone clarify when and how we display when multiple users are typing? Does this happen in group messages? I would have thought we'd just show something generic like "Multiple people are typing" when there is more than 1.

For 1: User A is typing
For 2: User A and User B are typing
For rest: Multiple users are typing

@bfitzexpensify updated title to pay on 11/8, doesn't look like was auto updated yesterday when the issue closed.  Also reopening this til contributor is paid.  @NikkiWines let me know if I'm missing anything here

Oh sorry, must've auto-closed cause I merged the PR. Your update looks good @mallenexpensify

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.1.13-2 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/5933

If no regressions arise, payment will be issued on 2021-11-11. :confetti_ball:

@NikkiWines @mallenexpensify I am not sure why the payment date changed to Nov 11 from Nov 8. Didn't find any reported regression.

Payment date is 7 days after deployment to PROD https://github.com/Expensify/App/pull/5933#issuecomment-961434950

Issue not reproducible during KI retests. (First Week)

Contract ended, payment finalised - thanks @akshayasalvi!

authors: MelvinBot NikkiWines PrashantMangukiya akshayasalvi bfitzexpensify botify kavimuru mallenexpensify mvtglobally parasharrajat shawnborton


text:
[HOLD for payment 2022-05-20][$500] Auto-filling my information on Request a call page fills my name in the opened chat's compose box too - reported by @adeel0202

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:

Go to https://new.expensify.com/ on Safari web
Go to any workspace
Click on Get assistance icon
Click on Request a setup call
Click on First name field
Click on the auto-fill icon to autofill your info
Observe that your auto-filled name is filled on the opened chat's compose box too

Expected Result:
Opened chat should not be filled with auto-filled name
Actual Result:
Opened chat is also filled with auto-filled name
Workaround:
unknown
Platform:

Where is this issue occurring?

Web (Safari)

Version Number: 1.1.49-0
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43995119/161470901-e44f60db-8a72-41a1-a383-a90a8a84976c.mov
Expensify/Expensify Issue URL:
Issue reported by: @adeel0202
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1647887778628489
View all open jobs on GitHub

This should be external!

Upwork Job

Still looking for proposals.

Doubled the price of the Upwork Job!

Hmm...no proposals yet.

Your proposal makes sense. I'd suggest that we refactor Form to be auto-fill enabled and convert requestCallPage to use it.
The reason why we are still not using Form is because some inputs are still being refactored. However, it seems like that page only uses TextInput which should be ready!

Ok. There are a couple of challenges here.

Button is not fixed at the bottom.
How will we pass the additional footer message and disable the button for isBlockedFromConcierge.
FullNameInputRow is not compatible with Form.
Design on the button.

Hmm ok, there are some other known issues with Form, e.g. https://github.com/Expensify/App/issues/8567. So maybe we postpone using it for now until it's ready. We can continue with your proposal here, without the Form suggestion for now.

Ok. Thanks. I will push the PR shortly.

On it today.

Should we remove the Help Wanted label here?

Ah yes! Removed :)

I believe the only action item left here is payment. @MitchExpensify could you pay @parasharrajat for the fix and close this issue please?

@laurenreidexpensify I just reassigned this since Mitch is ooo until Jun 9. The only action item left here is to pay @parasharrajat for the fix. Could you do that please?

@parasharrajat offer sent

I'm also eligible for the reporting bonus :)

cool @adeel0202 offer sent to you too! sorry we missed you there!

No worries, @laurenreidexpensify. I have accepted the offer. Thanks.

everyone has been paid, thanks folks!

authors: MitchExpensify adeel0202 laurenreidexpensify luacmartins mvtglobally parasharrajat


text:
Fix after requesting money badge in the DM flashes with red 0.00

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/9181
PROPOSAL: https://github.com/Expensify/App/issues/9181#issuecomment-1320198852
Tests

Log in with any account
Select a chat (no current IOU)
Click on Fab menu - Request Money
Put amount and click next button
Click Request  and verify badge color and number

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

Log in with any account
Select a chat (no current IOU)
Click on Fab menu - Request Money
Put amount and click next button
Click Request  and verify badge color and number

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above

[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms

[x] I ran the tests on all platforms & verified they passed on:

[x] iOS / native
[x] Android / native
[x] iOS / Safari
[x] Android / Chrome
[x] MacOS / Chrome
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)

[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product was added in all src/languages/* files
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers

[x] I followed the guidelines as stated in the Review Guidelines

[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)

[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)

[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such

[x] I verified that if a function's arguments changed that all usages have also been updated correctly

[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)

[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.

[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

PR Reviewer Checklist
The reviewer will copy/paste it into a new comment and complete it after the author checklist is completed

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for expected offline behavior are in the Offline steps section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[ ] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] iOS / native
[ ] Android / native
[ ] iOS / Safari
[ ] Android / Chrome
[ ] MacOS / Chrome
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] I verified that if a function's arguments changed that all usages have also been updated correctly
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots

Web

https://user-images.githubusercontent.com/8579651/203072329-f59eb97b-9415-4607-b42d-23bdb6d09b2c.mp4
Mobile Web - Chrome

https://user-images.githubusercontent.com/8579651/203072571-34dbcc93-39f5-4694-9822-88f353114269.mp4
Mobile Web - Safari

https://user-images.githubusercontent.com/8579651/203072612-d2783c9a-84a0-48cc-bd47-4c20331aa561.mp4
Desktop

https://user-images.githubusercontent.com/8579651/203072750-1856aa5b-5240-4845-acb5-f47e2a52c572.mp4
iOS

https://user-images.githubusercontent.com/8579651/203073223-c0b08422-361b-41d9-bbf5-f583fac8a072.mp4
Android

https://user-images.githubusercontent.com/8579651/203073395-e83a4b01-02fd-4a1d-98f6-ae433297e257.mp4

Are we going to wait on the backend change @iwiznia?

Yes, we are, so it can be tested properly with the server changes and be observed to work.

@parasharrajat hi, the backend has changed, and it can be tested properly. 😄

Awesome. Please update the tests and QA steps to cover both frontend/backend in not already.

Ah, sorry, I may not have understood too well. The tests and QA steps don't seem to be changing? And screenshots are also a record of correct work. 😂

The difference is that the above screenshots are based on my temporary tweak.
I just removed it and re-tested this PR on all platforms, it worked well.
Do I need to update screenshots?

yeah, please update them. Do test your changes while offline. It should work the same while offline and user comes back online.

Got it, updated!

@parasharrajat Offline screenshots have been added, only the IOS simulator is not good for testing offline behavior.

can we move it forward? 😄

Screenshots
:black_square_button: iOS / native
:black_square_button: iOS / Safari
:black_square_button: MacOS / Desktop
:black_square_button: MacOS / Chrome
https://user-images.githubusercontent.com/24370807/203654390-8d0f6c2b-de29-46ee-8d13-401fe518ba43.mp4
:black_square_button: Android / Chrome
https://user-images.githubusercontent.com/24370807/203654682-be0aea4c-790f-469f-b955-5e0dce25d589.mp4
:black_square_button: Android / native
https://user-images.githubusercontent.com/24370807/203655349-44c2389d-e169-4b02-965e-e73d7df250c0.mp4

Ready to merge.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by @iwiznia in version: 1.2.31-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@ntdiary np! this is just an announcement that this PR was deployed on v1.2.32-2. No action required!

source: gharchive/pull-request

authors: OSBotify iwiznia luacmartins ntdiary parasharrajat


text:
Fix navigation to Concierge chat after sign-up/sign-in

Details

This PR fixes the navigation to Concierge right a user signs up or signs in after opening the link https://new.expensify.com/concierge
Fixed Issues

$ https://github.com/Expensify/App/issues/15785
$ https://github.com/Expensify/App/issues/16080
Tests

Log out if you're already logged in
Open https://new.expensify.com/concierge
Sign-up with a new account
Verify it navigates to the Concierge chat
Sign-out, close the app / refresh the browser
Open again https://new.expensify.com/concierge
Sign-in with an existing account
Verify again it navigates to the Concierge chat
Log out, don't close the app
Open again https://new.expensify.com/concierge
Sign-in with an existing account
Verify again it navigates to the Concierge chat

To navigate to https://new.expensify.com/concierge on dev:

On web just paste the URL in the browser (i.e. http://localhost:8080/concierge) and click on open this link in your browser
On desktop also paste the URL in the browser but click on Open Electron from the alert dialog
On Android open the deep link from Terminal: npx uri-scheme open new-expensify://concierge--android
On iOS also open the deep link from Terminal: npx uri-scheme open new-expensify://concierge--ios

To navigate to https://new.expensify.com/concierge on staging/production:

On web just paste the URL in the browser (i.e. https://new.expensify.com/concierge) and click on open this link in your browser

On desktop also paste the URL in the browser but click on Open Electron from the alert dialog

On native open the report chat from an external link (for example send https://staging.new.expensify.com/concierge to your email and open the link from the phone).

[x] Verify that no errors appear in the JS console

Offline tests

N/A
QA Steps

Same as test steps

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://user-images.githubusercontent.com/6829422/224151386-bc5d24d5-08fd-446f-b3c8-3e46d5a5911a.mov

Mobile Web - Chrome

https://user-images.githubusercontent.com/6829422/224153843-fd414ad6-d96b-49b2-bf84-c73ae939145c.mov

Mobile Web - Safari

https://user-images.githubusercontent.com/6829422/224152246-f958f76c-3ecb-42cf-94b9-17e8d2025e41.mov

Desktop

https://user-images.githubusercontent.com/6829422/224156802-ff711e40-ef21-494e-823b-412f77772753.mov
After signing out without closing the application:
https://user-images.githubusercontent.com/6829422/226499968-133cd8c0-56f0-4664-ba37-c7a030ed074a.mov

iOS

https://user-images.githubusercontent.com/6829422/224156367-29f2e70b-e911-439e-8893-21b2ecf9ec8a.mov
After signing out without closing the application:
https://user-images.githubusercontent.com/6829422/226499827-4ed2a73c-8408-4edc-8a71-d9f6ff5fe6a7.mov

Android

https://user-images.githubusercontent.com/6829422/224155991-1ce40390-b57b-4407-b889-5909bb1531ea.mov
After signing out without closing the application:
https://user-images.githubusercontent.com/6829422/226499632-969ddc71-9b76-42d1-89f7-1a7d6680fe78.mov

@thesahindia @danieldoglas One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@thesahindia can you please test and do the checklist here?

Closing it in favor of this proposal.

Hi @thesahindia, I didn't see your previous comments and didn't notice you already reviewed the PR, sorry about that 🙇🏽 I think I didn't refresh the PR when I posted this comment.
I'm re-opening this PR because there is a regression with the other proposal. I will update the steps and add some videos covering the regression (only reproducible on native). Could you test it again? Thanks

Tests went well with an existing account but not with a new account. I didn't get navigated to concierge. The fab menu opens for the new account.
cc: @marcochavezf

Btw, I tested again and it's working with new accounts when I open the app from the deep link.

🚀 Cherry-picked to staging by https://github.com/mountiny in version: 1.2.87-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

Retest for this CP was a pass in the following platforms:

Web/mWeb
Android
Desktop

Note: For iOS, the deep linking is broken so we were blocked from testing on that platform - issue here https://github.com/Expensify/App/issues/15158
Checking it off the list

🚀 Deployed to production by https://github.com/AndrewGable in version: 1.2.87-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/AndrewGable in version: 1.2.87-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/AndrewGable in version: 1.3.28-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

authors: MelvinBot OSBotify danieldoglas isagoico marcochavezf