text:
git-info ahead/behind is broken

Zim commit ref:   a7e060a
Zsh version:      zsh 5.0.8 (x86_64-apple-darwin15.0)
System info:      Darwin Food.local 15.6.0 Darwin Kernel Version 15.6.0: Fri Feb 17 10:21:18 PST 2017; root:xnu-3248.60.11.4.1~1/RELEASE_X86_64 x86_64

gist of .zimrc:
https://github.com/Tuurlijk/vim-config/blob/master/.zimrc

gist of .zshrc:
https://github.com/Tuurlijk/vim-config/blob/master/.zshrc

Description
When building a promt that accepts colours (like the fire prompt), I noticed that ahead/behind info in the git-info module returned incorrect results
Steps to reproduce
Enable a prompt with git-info e.g. eriner with the config:
	zstyle ':zim:git-info:ahead' format '↑%A'
	zstyle ':zim:git-info:behind' format '↓%B'
	zstyle ':zim:git-info:keys' format \
		'prompt' '%b%c%s%A%B %C%D'

Images or other information
On a branch that is behind you will see:

Where you should see:

Can you reproduce this with magicmace or minimal prompt themes?

I'm unable to reproduce this using any of the existing Zim prompts, not by making the changes in eriner as per "Steps to reproduce above". I always get the ↓n to show in the prompt...

I'm unable to reproduce.

These are changes made to eriner:
--- a/modules/prompt/themes/eriner.zsh-theme
+++ b/modules/prompt/themes/eriner.zsh-theme
@@ -98,8 +98,10 @@ prompt_eriner_setup() {
   zstyle ':zim:git-info:action' format ' (%s)'
   zstyle ':zim:git-info:clean' format 'green'
   zstyle ':zim:git-info:dirty' format 'yellow'
+  zstyle ':zim:git-info:ahead' format '↑%A'
+  zstyle ':zim:git-info:behind' format '↓%B'
   zstyle ':zim:git-info:keys' format \
-    'prompt' '%b%c%s' \
+    'prompt' '%b%c%s %A%B' \
     'color' '%C%D'

I'm using zsh 5.3.1 on Darwin 15.6.0.

Got it. Reverted to zsh 5.0.8 and I'm seeing the issue now.

@Tuurlijk, started new unsupported zsh-5.0 branch at 12e4ee2 that also contains the fix to this issue.

authors: Tuurlijk ericbn

repo: Eriner/zim


text:
feat: refactor Merkle proof for ergonomics

closes: #642, #658

This PR:

Remove leaf information (index, element) from the MerkleProof struct.
Change the verifications APIs to take a Merkle commitment instead of a simple root digest.

This PR does not:

Key places to review:

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (main)
[ ] Linked to GitHub issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[ ] Wrote unit tests
[ ] Updated relevant documentation in the code
[ ] Added relevant changelog entries to the CHANGELOG.md of touched crates.
[ ] Re-reviewed Files changed in the GitHub PR explorer

Change the verifications APIs to take a Merkle commitment instead of a simple root digest.

Why is this needed?

Why is this needed?

I think it looks nicer.

And make sure that users won't miss this check: https://github.com/EspressoSystems/zkrollup-integration/blob/89e86d0ea3f6ea25b92e310d131d177512b0ff80/sp1/program/src/main.rs#L82

Sorry but I don't understand this comment.

Sorry but I don't understand this comment.

This is an additional check that the height information is correct. With previous API users may forget. to do so.
But I'm not quite sure whether it is necessary now. cc @alxiong

Anything specific to review with greater care? Seems like most changes are boilerplate: renaming variables, accommodating the removal of (index, element) from merkle proof, etc.

True. Most of them are boilerplate. Changes in forget_internal() and remember_internal() may require additional care. But they are all covered by unit tests. And this is also kind of internal audit.

Sorry but I don't understand this comment.

This is an additional check that the height information is correct. With previous API users may forget. to do so.
But I'm not quite sure whether it is necessary now. cc @alxiong

This is to ensure correct tree height is being used? to prevent extension attack (i.e. find a root collision via much larger tree)
meanwhile, I agree it's unclear from API design that why we need this check outside, instead of being part of BlockMerkleTree::verify() 🤔

meanwhile, I agree it's unclear from API design that why we need this check outside, instead of being part of BlockMerkleTree::verify() 🤔

Therefore it's checked inside verify() now.
My point is, as we are supplying the leaf information to verify(), is the height check still necessary to prevent the extension attack?

Why are we completely removing namespaced_merkle_tree?

Because it's no longer in use and takes too much efforts to refactor.

Why are we completely removing namespaced_merkle_tree?

Because it's no longer in use and takes too much efforts to refactor.

wait, so we are not going to use them? are we sticking to using a normal MT with a Namespace table to delineate the boundary of different namespaces?
I thought might be useful to keep a NMT, if the effort is high, we can do it in a separate PR?

wait, so we are not going to use them? are we sticking to using a normal MT with a Namespace table to delineate the boundary of different namespaces? I thought might be useful to keep a NMT, if the effort is high, we can do it in a separate PR?

No we are not. The namespace table now is just a plain vector with offsets @ggutoski
I think it's better to bring back NMT on request.

I was not even aware we have a NMT implementation. 😳 We don't need one IMO. We can revive it later if we find that we do need NMT.

Also do you think we should merge #685 together?
cc @alxiong @ggutoski

Also do you think we should merge https://github.com/EspressoSystems/jellyfish/pull/685 together?

we should keep them as two PRs, but yeah, we can rebase that PR after this is merge and then got that one in as well.

source: gharchive/pull-request

authors: alxiong ggutoski mrain

repo: EspressoSystems/jellyfish

license: MIT

license_type: permissive

license_source: github-api


text:
Error when trying to create the jar file

When trying to create the jar file, I receive an error? Anybody can assist or have a jar file for either 10.4.1 or even 10.5.1?
Thanks,
philip

The new update in #10, pending review at this time, is intended to provide support for 10.4.1 through 10.8.1 at least from a single binary. I think that could close this old issue from 2017, requesting 10.4.1 or 10.5.1.

@glasnerph Can you report whether the current main version still has this issue? I believe it is likely resolved.

source: gharchive/issue

authors: brudo glasnerph

repo: Esri/activemq-for-geoevent

license_source: bigquery


text:
Forms: Microapp identify layers

Summary of changes

Updated the identifyLayer operation when a feature is tapped to identifyLayers so that a FeatureForm can be instantiated from any feature layer in a webmap.
This might make the PortalItemUseCase domain logic inapplicable to the identify operation.

Thanks @sorenoid, merging.

repo: Esri/arcgis-maps-sdk-kotlin-toolkit


text:
Too Many Buttons on the Output List Decrease Size of Data Frame When Docked

Customer Feedback from on-site visit on 18FEB2016. Multiple users docked their Coordinate Tool window underneath the Table of Contents. This was their initial workflow/instinct. Neither right or wrong, this is the location that they placed it. In doing so, the Table of Contents had to be expanded in order to see the full output of coordinates in their output list. This reduced the amount of room the user had in their analyst window (Data Frame window).
If wanting to eliminate buttons, a few options could be to create Right-click options per Output row to allow the user to Configure and Delete/Remove the Coordinate Output. This would eliminate two buttons on the row. Buttons could also be combined into an over-arching settings button near the top of the Coordinate Tool window. There are numerous ways that this could be implemented, but just some ideas based on the users initial feedback regarding the buttons.

The add-in should not make the user have to expand the dock-able window to such an extent that they lose  major amount of real estate.

@topowright @pshowalter @mcalamito someone review and verify

I have verified this issue.

authors: jmccausland mcalamito topowright

repo: Esri/coordinate-tool-addin-dotnet


text:
Feat/ckan.data.gov

This branch contains custom inbound adaptor for harvesting data.gov.
@zguo - please, test it and review it.

This enhancement  resolves #36

authors: pandzel zguo

repo: Esri/geoportal-server-harvester


text:
Disable performance optimization of CntzImage::read

This function was being optimized to always return false
in the runtimecore branch leading to failures in our surface
tests suite. Preferring size optimization over perf for only this
function restores the expected behavior for rtc release
builds on macOS.
https://devtopia.esri.com/runtimecore/c_api/issues/12246
3rd party build: http://runtime-test.esri.com:8080/job/3rdparty_vtest_interface/263/downstreambuildview/
RTC build+test: http://runtime-test.esri.com:8080/job/vtest_interface/1555/downstreambuildview/

Looks like optimizing for size still gets the correct net result, while reducing library size by 5K. Re-running vTest.

@parkske oh nice.  Is there an attribute for O2 optimizations too?  That would be even better since this is Desktop and size is not an issue.

@chri7325 I haven't come across one that doesn't also come with a warning of "only use this for debugging".

repo: Esri/lerc


text:
"client" parameter is now required for generate token request in 10.3

We just encountered that there is an update to ArcGIS Server 10.3 for generate token request, now requires “client” parameter to be included in the request, otherwise we will get this error,
“{"error":{"code":201,"message":"Exception in generating token","details":"Exception in generating tokenFailed to generate a token for the user.Client ID is required for long expiration tokens."}}”
@afili  and I just made a quick patch to the .NET version for a user, by adding the “client” parameter in the generate token request, and this addition seems to be working with previous version of ArcGIS Server.
https://github.com/Esri/resource-proxy/blob/master/DotNet/proxy.ashx#L508
Before : string uri = tokenServiceUri + "?f=json&request=getToken&referer=" + PROXY_REFERER + "&expiration=60&username=" + su.Username + "&password=" + su.Password;
After : string uri = tokenServiceUri + "?f=json&client=HTTP Referer&referer=" + PROXY_REFERER + "&expiration=60&username=" + su.Username + "&password=" + su.Password;
So we need to make this changes to all version of the proxy.
I tested with ArcGIS server 10.2, and this change does not break anything, maybe we should try with older version to make sure.
Reference to ArcGIS Server documentation. http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#/Generate_Token/02r3000000m5000000/

good find @esoekianto .
in general, shouldn't cause any trouble in older versions of ArcGIS Server as unknown params are typically ignored.

Duplicate/solution for #177 which has been fixed and closed.

authors: bsvensson esoekianto jgravois

repo: Esri/resource-proxy


text:
Downloading the toolbox creates broken links

When downloading the toolbox to make changes I have noticed that there are broken links on all tools.
┆Issue is synchronized with this Asana task

@mfunk Is this still an issue?

@topowright  I haven't tried it but I assume that it still is.

Downloaded the toolbox and opened in ArcMap 10.4.1. I could only see two tools that had broken links:
Append Message File from Military Feature Workspace
AppendMilitaryFeaturesFromWorkspace

@csmoore Chris are/have you been working on these lately?

I believe this issue predates that toolbox (Military Features Tools) being added to the repo.
But for this toolbox, I guess the last change (not by me at https://github.com/Esri/solutions-geoprocessing-toolbox/pull/612 ) was done on a later version so this issue should be fixed - might be good to see if this issue also exists in the download item :  http://esriurl.com/AFMMilFeatures

That change #612 was removing the references to App6 I thought you were putting them back in. Seem like we go round in circles with these issues

authors: adgiles csmoore mfunk topowright

repo: Esri/solutions-geoprocessing-toolbox


text:
Updates to GRG utilties

These updates reflect the changes made in the https://github.com/Esri/military-tools-geoprocessing-toolbox repo
Description

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.

@dfoll we need to talk about this based on the conversation that we had today.

@topowright

authors: dfoll topowright


text:
RLOS - crashes with Mosaic Dataset as input surface

RLOS tool is crashing ArcMap when input surface is a Mosaic Dataset. I'm using the ElevationSurface mosaic from the MilitaryAnalyst-Geoprocessing-Toolbox\testdata.
MilitaryAnalyst-Geoprocessing-Toolbox

Open Visibility tools
Select RLOS tab
Input Surface select ElevationSurface
Use Map Point Tool to select one or two locations on the surface
Click OK

Crashy-crashy:

We did not have a plan to support Mosaic Datasets in the first version.

I believe this was fixed with a previous fix that has been merged.  I tested this in 10.5 and both LLOS and RLOS seem to work fine now when a mosaic dataset is used as the input surface.

Verified

authors: csmoore dhagens mfunk topowright

repo: Esri/visibility-addin-dotnet


text:
Cannot connect to node

I'm not entirely sure why as my ethtx_ce instance was working fine in the past, but now it fails to connect to my node.
2022-10-20 20:06:23.361 WARNING  [web3_provider.py:139 - _get_node_connection 8/MainProcess]     Connection failed to: <Chain: mainnet, Node: "REDACTED", Poa: False>

The node I have it pointed to at the moment is a hosted instance by Chainstack. I've updated to the latest ethtx_ce (0.3.17), and I've ruled out it being a problem with their TLS cert by making a local proxy that strips TLS and trying to use that.

It may actually the the TLS cert not being trusted which is the issue.

by making a local proxy that strips TLS and trying to use that.

of course that doesn't work because web3.py is hardcoded to use https which is a pretty big bug. I see it trying to send TLS packets to the host completely ignoring my http:// and :8545 port

There's something else going on and I'll reopen this with details

The issue was that I was quoting the value in docker-compose.
environment:
    - MAINNET_NODE_URL="https://foo.com"

which sets the ENV in the container with the quotes which does not match normal *nix behavior, which is to strip the quotes (which are sometimes needed depending on the characters in the value)


text:
bundle.js有源码吗？

想根据自己的需求简单更改一下，bundle.js源码非混淆的有吗？

应该是在这个repo里 https://github.com/EtherDream/jsproxy-browser

repo: EtherDream/jsproxy


text:
🛑 Diagnostico Zarate is down

In 4c6b7a7, Diagnostico Zarate (http://www.diagnosticozarate.com.ar) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Diagnostico Zarate is back up in 1e088a3.

repo: Etixen/upptime


text:
[Support] Terminus add too many icons on the top bar of Gnome desktop

Environment:
OS: Pos_os 20.10
Gnome version: 3.38.3
Terminus version: terminus-1.0.135-linux.deb
Problem statement:
I just downloaded and run this terminus using gdebi. The application works fine except that it adds a icon to the top bar everytime I use the "toggle terminal window". I'm using Terminus as a dropdown terminal solution on linux so this shortcut is quiet frequently used in my case. But its quiet unaesthetic to have repeated icon on the top bar, so I want to turn to you guys, asking what should I do to get rid of it.
Below is how my top bar looks like after using toggle shortcut three times, you can see three repeated terminus icon on the left part of the bar:

Step to reproduce:

install terminus deb package using gdebi, and launch it.
using "toggle terminal window" shortcut.
a icon was added everytime the terminal window is toggled to disappear.

Duplicate of #1642

authors: Eugeny TangdizhiH

repo: Eugeny/terminus

license: mit


text:
revive header logo to return home

It wasn't easy to go back to home page otherwise :)

Nice! do you think we should change the logo to have better contrast with the bg?

Nice! do you think we should change the logo to have better contrast with the bg?

I was thinking the same thing and thought the pink & blue one might be better for contrast against white.

@patrick91 @thepetk @artcz perhaps the current blue and pink looks better for contrast ( https://github.com/EuroPython/website/pull/489/commits/eac16dc80becf28620dd97891f15f31e25c1ad4b) like this?

I think this one is part of the hero and not componentised separately as a logo, which might not be easy to use in comparison?

If you are happy for the current version, feel free to merge or discuss which colours you'd like or take over entirely ofc :)

hey hey! any thoughts on whether the current version can be merged or it should be modified in any specific direction? :hugs:

repo: EuroPython/website


text:
Option to hide first column

I haven't find anything like this maybe i miss something . It might be useful to be able to hide it in case you don't want numbered lines

At the moment it is not possible. Will be implemented later.

release in https://github.com/Evgen2sat/JFXTableView/releases/tag/1.0.3.0
use jfxTableView.setVisibleNumberedRowsColumn();


text:
Cookie失效了

Platform where the error occurred?
Such as: Douyin/TikTok
The endpoint where the error occurred?
Such as: API-V1/API-V2/Web APP
Submitted input value?
Such as: video link
Have you tried again?
Such as: Yes, the error still exists after X time after the error occurred.
Have you checked the readme or interface documentation for this project?
Such as: Yes, and it is very sure that the problem is caused by the program.

Can you provide more information?

获取原始链接成功, 原始链接为: https://www.iesdouyin.com/share/video/7219994611979160892/
获取到的抖音视频ID为: 7219994611979160892
获取视频ID成功,视频ID为:7219994611979160892
正在获取视频数据...
正在获取抖音视频数据...
正在获取视频数据API: https://www.iesdouyin.com/aweme/v1/web/aweme/detail/?aweme_id=7219994611979160892&aid=1128&version_name=23.5.0&device_platform=android&os_version=2333&Github=Evil0ctal&words=FK-U-ByteDance
获取抖音视频数据失败！原因:0, message='Attempt to decode JSON with unexpected mimetype: text/plain; charset=utf-8', url=URL('https://www.iesdouyin.com/aweme/v1/web/aweme/detail/?aweme_id=7219994611979160892&aid=1128&version_name=23.5.0&device_platform=android&os_version=2333&Github=Evil0ctal&words=FK-U-ByteDance')
[抖音|TikTok方法]返回数据为空，无法处理！
The hybrid parsing result:
{'status': 'failed', 'message': '返回数据为空，无法处理！/Return data is empty and cannot be processed!'}


text:
The maximum allowed size error when calling ReadAllSync

When calling ReadAllAsync I'm getting this error:
"The maximum allowed size is 1048576, but the supplied file is of length 1203571. Parameter fileListEntry"
The file size is 1,176,000 bytes.
What is the file size limit for ExcelDataReader?
Is there any way to load files this size?

Hi,
ReadAllAsync is not part of ExcelDataReader, and ExcelDataReader has no explicit file size limit on input files.
Please show your code and the full stacktrace

authors: ZapRiver andersnm

repo: ExcelDataReader/ExcelDataReader


text:
chore: deprecate dependabot

Please verify that:

[x] Code is up-to-date with the main branch.
[x] You've successfully built and run the tests locally.
[-] There are new or updated unit tests validating the change.

:tada: This PR is included in version 1.10.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

repo: ExpediaGroup/spec-transformer


text:
Web - Attachment - Error on console when select pdf file to upload

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 test website https://staging.new.expensify.com/
Log into your account
Open any chat, click on the + button in the compose box
Click on add an attachment
Select a PDF file
Check the console in the browser

Expected Result:
No errors are present in the console in the browser when the user selects a pdf file to upload in the chat.
Actual Result:
Errors are present in the console in the browser when the user selects a pdf file to upload in the chat.
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.2.81.0
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://user-images.githubusercontent.com/93399543/224108086-0e3257f8-a1d3-4f69-9d62-e8fb5b2a0755.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

Triggered auto assignment to @sonialiap (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

I do not get that same collection of errors when uploading a PDF on staging. Here is what I get:

open JS console
clear the console
click + > add attachment > select a pdf document

Screenshot taken after pdf uploads

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

@grgia I can't replicate the errors kbecciv is reporting, can you? If we can't then I think we can close this

authors: MelvinBot kbecciv sonialiap

repo: Expensify/App


text:
Chat - Link preview does not appear except google.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!

Issue found when executing PR https://github.com/Expensify/App/pull/17288
Action Performed:

Go to https://staging.new.expensify.com/
Go to any chat
Send any link

Expected Result:
Link preview appears
Actual Result:
Link preview does not appear except google.com
Workaround:
Unknown
Platforms:

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

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

Version Number: 1.3.28.3
Reproducible in staging?: Yes
Reproducible in production?: No
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/78819774/85f8d6d2-d822-4b40-806a-c9f7491bc31a
Expensify/Expensify Issue URL:
Issue reported by: Appause - Internal Team
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0139a876cca4721bb4
Upwork Job ID: 1669387928143917056
Last Price Increase: 2023-06-15

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Not a blocker because it's a brand new feature, discussed here: https://expensify.slack.com/archives/C01GTK53T8Q/p1686845846653239?thread_ts=1686840921.260039&cid=C01GTK53T8Q

Not a deploy blocker.

@wojtus7 will check the backend for this to see if we need a change there or if there's some other reason this is not working.

Hmm so on first blush... this is working for me fine locally.

But the behavior is different on staging 🤔 which makes me think that we are just getting rate limited as we are still testing on the free tier usage. For now, I will add some more logs.

Oh yes the soft limit is only 50 requests per day LOL we would break that in 0.00001 seconds.

Still on my list to look into.

Still setting up the accounts.

@marcaaron we're not now seeing link previews for other sites except google. Seems like this issue is fixed? cc @hungvu193

Hmm can you clarify what exactly you are seeing? Like what platform are you testing on? Show me what you did?
To give an update - the rate limiting issue should be fixed now. But we might have CSP issues to look into on web since we are loading images and content that are outside our domain.

Sorry, I mean link preview for other sites(except google is seen). I tested right now on production and it worked!

I think we can close this one out then?

authors: MonilBhavsar OSBotify flodnv lanitochka17 marcaaron


text:
Getting console error when opening public room

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:
Action Performed:

Login as any user.
Open any public room (/r/5593084223054221)

Expected Result:
No console error occurs
Actual Result:
A console error occurs stating:
Warning: Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
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.32-5
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/43996225/aee3868d-96b9-4619-bd8e-342fb615920a

Expensify/Expensify Issue URL:
Issue reported by: @allroundexperts
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1687379866272869
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
When a user mention is displayed, the console error about Function Components is shown.
What is the root cause of that problem?
We're passing ref to a Function Component, which in React is considered an error.
What changes do you think we should make in order to solve the problem?
In Hoverable, we can pass ref to the cloned element only if there was any original ref.
class Hoverable extends Component {
    // ...

    render() {
        // ...

        const {ref} = child;

        const wrappedRef = ref ? (el) => {
            this.wrapperView = el;

            // Call the original ref, if any
            if (_.isFunction(ref)) {
                ref(el);
                return;
            }

            if (_.isObject(ref)) {
                ref.current = el;
            }
        } : undefined;

        return React.cloneElement(React.Children.only(child), {
            ref: wrappedRef,

            // ...
        });
    }
}

Proposal
Please re-state the problem that we are trying to solve in this issue.
When a user mention (MentionUserRenderer) is displayed, the console error about Function Components is shown.
What is the root cause of that problem?
MentionUserRenderer wraps a TextLink with a Tooltip, while Tooltip passes its child to Hoverable. In turn, Hoverable expects its child to be an instance of a component that accepts the ref special property.
However, TextLink is a simple function component. Function components don't support ref by default.
What changes do you think we should make in order to solve the problem?
A simple, local fix is to forward the reference in TextLink.

const TextLink = forwardRef((props, ref) => {
    const rest = _.omit(props, _.keys(propTypes));
    const additionalStyles = _.isArray(props.style) ? props.style : [props.style];

    // ...

    return (
        <Text
            ref={ref}
            // ...
        >
            {props.children}
        </Text>
    );
});

What alternative solutions did you explore?
I tried figuring out how Hoverable implementation could be adjusted, so it doesn't require its child to accept ref, but that seems to be trickier than I thought. It's probably beyond the scope of this particular issue.

I think this is dupe https://github.com/Expensify/App/issues/21496

The root cause is same

@gadhiyamanan @allroundexperts will this be resolved by the changes in https://github.com/Expensify/App/issues/21496?

Ok so I'll put this on hold until https://github.com/Expensify/App/issues/21496 closes and switch it to weekly.

Still on hold

Alright https://github.com/Expensify/App/issues/21496 has now closed do we want to check if the error is still happening?

It looks like we're good here so closing this.

authors: cubuspl42 flaviadefaria gadhiyamanan kavimuru


text:
CLEANUP: Remove an unnecessary ESLint rules from eslint-config-expensify

Because we changed the style guideline to use object de-structuring to assign default values, `rulesdir/onyx-props-must-have-default': 'error' is no longer relevant. Remove the rule.

@spcheema unfortunately it's not but thank you for your interest

will do after TS migration is over

melvin, TS migration is still going

melvin, TS migration is still going

TS migration is still going

TS migration is nearing end

TS migration is nearing end

TS migration is nearing end

changing this issue to weekly as the TS migration finishes in the App repo! 🚀

Hey! I’m Błażej Kustra from Software Mansion, an expert agency, and I’d like to work on this issue!

Because we changed the style guideline to use object de-structuring to assign default values, `rulesdir/onyx-props-must-have-default': 'error' is no longer relevant. Remove the rule.

@hayata-suenaga Let me know if there are any other rules that we need to remove, or maybe I should remove/adjust all rules conflicting with NewDot configuration?

@blazejkustra some ESLint rules need to be removed from the Expensify ESlint, so I'll handle this 😄 🙇

Removing onyx-props-must-have-default -> https://github.com/Expensify/eslint-config-expensify/pull/92

@blazejkustra some ESLint rules need to be removed from the Expensify ESlint, so I'll handle this 😄 🙇

Absolutely, all yours 😄 Let me know if there is anything I could help!

The two PRs were merge and deployed. I don't know why Melvin didn't remove the reviewing label. Closing the issue now 😄

authors: blazejkustra hayata-suenaga


text:
[HOLD for payment 2023-08-17] [$1000] Red dot and [Attachment] shows in LHN even after close error message

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 any chat
send any corrupted file
click on X button in Unexpected error message

Expected Result:
should not show red dot and [Attachment] in LHN
Actual Result:
red dot and [Attachment] shows in LHN
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
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.50-0
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/43996225/e69d29a3-190a-4060-b049-7a1ef2ff0247
https://github.com/Expensify/App/assets/43996225/84396690-69ee-4861-b2f0-b4bdf857291b
Expensify/Expensify Issue URL:
Issue reported by: @gadhiyamanan
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1690879133508289
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~019aca46aa1b2b9812
Upwork Job ID: 1687588216647823360
Last Price Increase: 2023-08-04
Automatic offers:

gadhiyamanan | Reporter | 25956660
bernhardoj | Contributor | 25986609

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

We have two issues here:

[Issue 1] - Red dot is still showing in LHN even after we close the error message.
[Issue 2] - [Attachment] text shows in LHN even after we close error message.

What is the root cause of that problem?

[Issue 1] - In OptionsRowLHNData.js below line doesn't get any effect (as we are accessing reportActions directly from onyx listener in SidebarUtils.js) when clearing errors and thus its not updating the Red Dot.

https://github.com/Expensify/App/blob/f9d760f4ac067405fc22c7c2b82e910717941454/src/components/LHNOptionsList/OptionRowLHNData.js#L82

[Issue 2] - When API fails to upload attachment it should revert last message to given lastMessageText but it isn't doing that.

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

[Issue 1] - We should add a reportActions key to withOnyx HOC and then we can pass it to the useMemo dependency array. This will update the Red Dot when we clear the error.

reportActions: {
    key: (props) => `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${props.reportID}`,
    canEvict: false, // I still don't know what this is used for but I had to pass it to make it run.
},

[Issue 2] - On backend we should revert last message to given lastMessageText when API fails to upload attachment.

What alternative solutions did you explore? (Optional)

N/A

Agree this is a bug, moving forward to external

@tjferriss I am going OOO for a week, so tapping you in to help out in the interim. Thanks!

I like @bernhardoj's proposal https://github.com/Expensify/App/issues/24136#issuecomment-1665040641 because it fixes the root cause
C+ reviewed 🎀 👀 🎀

WIP ⚠

The PR that introduced the bug has been identified. Link to the PR:

The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:

A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:

Determine if we should create a regression test for this bug.

If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again

Created a manual request - https://staging.new.expensify.com/r/3716241818407301

Payment summary

Reporter: @gadhiyamanan $250
Contributor: @bernhardoj $1,500
C+: @rushatgabhane $1,500

Adding @JmillsExpensify for the newdot payment. Following this SO, but let me know if I should be doing something differently

Payments made to @gadhiyamanan  and @bernhardoj

Reviewed the details for @rushatgabhane. Approved for $1,500 payment in NewDot based on the BZ summary above.

authors: JmillsExpensify jeet-dhandha kavimuru kevinksullivan rushatgabhane


text:
[$500] Unread line appears on previous message when money request paid or requested.

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:

Request money to account B
Observe the unread line on request report
Pay from account B
Request money again to account B
Observe the unread indicator
Pay from account B
Observe the unread indicator
Request money to account B
Observe the unread indicator

Expected Result:
The unread indicator should be on the latest message.
Actual Result:
The unread indicator is not on the latest message.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
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.362-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
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/82b23311-0a22-41ff-9212-e3379b1168c3
https://github.com/Expensify/App/assets/43996225/49847bdb-c271-4eb7-8659-4542bd350467
Expensify/Expensify Issue URL:
Issue reported by: @krishna2323
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1692993587476099
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0136e06c7af01df233
Upwork Job ID: 1698706376487473152
Last Price Increase: 2023-09-11

@kavimuru Issue title has a spelling error (reuested -> requested)

Proposal
Please re-state the problem that we are trying to solve in this issue.
Unread line appears on previous message when money request paid or requested.
What is the root cause of that problem?
The ReportActionItem component has the propType of shouldDisplayNewMarker. The propType needs to be false to not render the UnreadActionIndicator component but it memorizes the previous shouldDisplayNewMarker value which is true and doesn't change.
https://github.com/Expensify/App/blob/d2bdaece9151c8c65d3b4bc4c9578be663f1950d/src/pages/home/report/ReportActionItem.js#L560
What changes do you think we should make in order to solve the problem?
Delete the line below, to make the report component not render UnreadActionIndicator because the shouldDisplayNewMaker will be false after rerender.
https://github.com/Expensify/App/blob/d2bdaece9151c8c65d3b4bc4c9578be663f1950d/src/pages/home/report/ReportActionItem.js#L654

Why is it a bug?

@narefyev91 bump for review thanks

@narefyev91  I think this is an error from  backend,
I  can see lastReadTime  is  not getting updated properly , and still points  to last message.
command=RequestMoney Response  I  can see Onyx Merge LastReadTime is not coming  as proper.

@laurenreidexpensify Sorry - i'm on EU React native conference - will take a look on Monday - but seems to me - it maybe really API issue as @devrari mentioned - because indicator rely on some API data
shouldDisplayNewMarker = isCurrentMessageUnread && !isMessageUnread(nextMessage, report.lastReadTime);

@narefyev91 have you had a moment to look yet? thanks

Hey @laurenreidexpensify it's a BE issue - we need to make it internal

@luacmartins this internal as a back end issue

PR up - https://github.com/Expensify/Auth/pull/8689

@luacmartins do we need to issue payments for this one? just realised it's been merged for 3 weeks 😅

Thanks for raising this! Yes, we should issue payment for reporting bonus and then we can close this out!

@Krishna2323 job sent in Upwork 👍

https://www.upwork.com/en-gb/nx/wm/offer/27179717

Payment Summary:

bug reporter @Krishna2323 $50 paid in Upwork

authors: Tony-MK astrohunter62 devrari kavimuru laurenreidexpensify luacmartins narefyev91


text:
[$500] Expense - System message for report submission is not copied when copied to clipboard

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.6.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:
Issue found when executing PR https://github.com/Expensify/App/pull/32157
Action Performed:
Precondition:

User is an employee of a Collect workspace

Log in to ND as the employee
Go to the workspace chat > + > Request money
Create a manual request
Click on the expense preview > Submit
Click on the header subtitle to return to workspace main chat
Click on the expense preview
Right click on the 'report submission' message > Copy to clipboard
Paste it in the composer

Expected Result:
The system message for 'report submission' is copied
Actual Result:
The system message for 'report submission' is not copied
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/991e8277-c601-4b03-a785-cc326a7fcebe
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01dc72215454974184
Upwork Job ID: 1730286719439400960
Last Price Increase: 2023-11-30

Proposal
Please re-state the problem that we are trying to solve in this issue.
Expense - System message for report submission is not copied when copied to clipboard
What is the root cause of that problem?
We are not handling the sumission report action case in here
https://github.com/Expensify/App/blob/a7460f7f81c9999cf20964e67b6f9029dc18a51f/src/pages/home/report/ContextMenu/ContextMenuActions.js#L263-L264
What changes do you think we should make in order to solve the problem?

We need to add to here
https://github.com/Expensify/App/blob/a7460f7f81c9999cf20964e67b6f9029dc18a51f/src/pages/home/report/ContextMenu/ContextMenuActions.js#L284-L287
this
else if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.SUBMITTED) {
                    Clipboard.setString(lodashGet(reportAction, 'message.0.text', ''));
                }

What alternative solutions did you explore? (Optional)

Just checked
@FitseTLT proposal works correctly. I think we should go with this.
🎀 👀 🎀 C+ reviewed

Please ignore my previous comment
The issue is open for proposals again.

@FitseTLT You are kind of right. But need more changes to work actually.

You may need to modify according to this reportAction

Any way to get access to/part of Collect Workspace?

Ask this on slack when you are assigned

@shubham1206agra please complete the bugzero checklist thanks!

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[x]  [@shubham1206agra] The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/28947
[x]  [@shubham1206agra] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/28947#issuecomment-1862441403
[x]  [@shubham1206agra] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: Not required
[x]  [@shubham1206agra] Determine if we should create a regression test for this bug. No as it was edge case from backend
[x]  [@shubham1206agra] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
[ ]  [] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

@lakchote Bump

@laurenreidexpensify Can you process payment here please?

Payment Summary:
Contributor $500 paid in Upwork @bernhardoj
C+ $500 paid in Upwork @shubham1206agra


text:
[$500] Private notes - Note editor opens instead of list for user with existing private notes

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.6-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/31344
Action Performed:
Precondition: There is a chat with some content in the Privates notes and the note is not visited before. If visited, please log out and log in again

Go to staging.new.expensify.com
Open the chat from the precondition
Click on the header
Click Private notes

Expected Result:
User is navigated to private note list screen
Actual Result:
User is navigated to private note editor instead of private note list screen
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/f5c6ab80-2132-417a-b48d-9f54941681c7
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01b1540c07c23a34c8
Upwork Job ID: 1730368222515441664
Last Price Increase: 2023-11-30

@lanitochka17, can you elaborate what you mean by this,

Open the chat from the precondition

whats do you mean by precondition?
Also i tested the private notes on a DM and a group chat and it seemed to work fine for me on staging chrome. Can you double check?
Meanwhile I'll ping the authors of https://github.com/Expensify/App/pull/31344 to double check as well.

Asked authors in slack here
Asked QA here.

I don't see any issue so I've asked others to confirm. If the issue does infact persist we can revert https://github.com/Expensify/App/pull/31344 but i'd like to confirm it first before reverting.

i removed the job posting from upwork because it was created by accident, this issue is about fixing a logic with a very recent PR.

I am working on it

Found a possible regression whilst testing for https://github.com/Expensify/App/pull/31257. If you go offline before the GetReportPrivateNote request completes, the notes page still loads but is always empty (even when there are notes saved).

@jjcoffee

the notes page still loads but is always empty

What is the "notes page" that you mentioned? (Currently, we have two  page, "notes list" page and "notes edit" page

Apologies, forgot to attach a video. It's the notes list page (I think), but we get navigated to the edit page (incorrectly):
https://github.com/Expensify/App/assets/27287420/280c3991-4896-467c-9810-8a7dd5a1bcc7

@jjcoffee

Do you have any suggestions in this case? Because if the getReportPrivateNote is not called successfully, we will navigate user to edit note page as expected.
My suggestion is that, BE will return the private note data when in the OpenReport API.

@jjcoffee Can you help check this one https://github.com/Expensify/App/issues/32302#issuecomment-1857599642 once you have a chance

Issue not reproducible during KI retests. (First week)

@DylanDylann I'm not sure I fully understand your comment or if you are proposing a particular solution, but I think it's up to the C+ on this issue to handle regressions. cc @ArekChr

@jjcoffee Maybe @ArekChr is not available

QA, for retesting, here's a vid example
https://github.com/Expensify/App/issues/32302#issuecomment-1857581195
@shubham1206agra , yes, I'll assign you as C+ if the bug persists after more testing.  Did you try to reproduce?

authors: DylanDylann chiragsalian jjcoffee lanitochka17 mallenexpensify mvtglobally


text:
Contact method - mWeb opens when click on unlink link from the email

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

Found when validating PR : https://github.com/Expensify/App/pull/36850
Version Number: 1.4.45-0
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause-Internal Team
Action Performed:

Open New Expensify app.
Add a new unverified contact method
Log out
Log in with the unverified contact method
Press Unlink
Open the unlink link from the email

Expected Result:
When I open the unlink link from the email I must be redirect to New Expensify app.
Actual Result:
But when I click on unlink link from the email opens in mWeb, not New Expensify app.
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
https://github.com/Expensify/App/assets/115492554/a9694b90-8479-42c6-9b94-38d6f96ce2f9

View all open jobs on GitHub

@izarutskaya I am going to be honest, I find the expected result and actual result details very confusing. Can you please clarify those in the original comment, so I can review?
Thanks!

Hi @stephanieelliott! I am heading OoO (back March 11th), so reassigned to keep this moving. At this stage, we're waiting on @izarutskaya to clarify on the Expected and Actual outcomes since the OG comment wasn't super clear. Thanks!

Hello @CortneyOfstad ! Sorry for the confusion, I corrected expected, actual results. Thanks

Proposal
Please re-state the problem that we are trying to solve in this issue.
Pressing an unlink login path from an email doesn't redirect user to the installed app.
What is the root cause of that problem?
The app didn't recognize the unlink login path because we didn't register it to be recognized as a deep link.
What changes do you think we should make in order to solve the problem?

We should register unlink login path in both AndroidManifest
<data android:scheme="https" android:host="staging.new.expensify.com" android:pathPrefix="/u"/>
...
<data android:scheme="https" android:host="staging.new.expensify.com" android:pathPrefix="/u"/>

and apple-app-site-association.
{
    "/": "/u/*",
    "comment": "Unlink login"
},

I feel this is pretty minor, seeing as it does not affect functionality and does not fit into any of our existing product roadmap waves I am going to close this one

authors: CortneyOfstad bernhardoj izarutskaya stephanieelliott


text:
[$500] Settings - Preferences page is visible for a moment when navigate via text link in Focus Mode popup

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.46-0
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): applausetester+jp_e_category@applause.expensifail.com
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/34069
Action Performed:

Open New Expensify app.
Login
Popup appears
Click on the text link “Settings”

Expected Result:
Priority mode page opens
Actual Result:
Preferences page is visible for a moment when navigate via text link in Focus Mode popup
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/81671c03-e15f-4eba-bca2-f1a2d84ab4c1
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0128371baf608716e9
Upwork Job ID: 1765238125791371264
Last Price Increase: 2024-03-06

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

I'm also not sure, so let's see what the community says.

@tienifr's proposal looks good to me. We also should set isCentralPaneAndBottomTabMandatory is false in the small screen
🎀 👀 🎀 C+ reviewed

@thienlnam Please uphold this issue. I still can reproduce after https://github.com/Expensify/App/pull/37421 is merged

@thienlnam I approved the proposal here. All yours

Any updates on the proposal reviews for this issue?

Waiting for a approval from @thienlnam

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
[@DylanDylann] The PR that introduced the bug has been identified. Link to the PR: NA
[@DylanDylann] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: NA
[@DylanDylann] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: NA
[@DylanDylann] Determine if we should create a regression test for this bug. Yes
[@DylanDylann] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
Regression Test Proposal

Open New Expensify app.
Login
Popup appears
Click on the text link “Settings”
Verify that Preferences page is not visible and priority mode page opens

Do we agree 👍 or 👎

Payment summary:

Contributor: @tienifr $500
Contributor+: @DylanDylann $500

For the regression test, isn't there a pre-requisite that you're in focus mode? I don't quite understand how that's going to prevent this from being tested and happening again.

@JmillsExpensify Yeah, we should have a pre-requisite as you said. I updated

All contributors paid


text:
[HOLD for payment 2024-05-09] Stop sending  when not in a policy room

When we add a comment to a report we parse it before sending to the backend with ExpensiMark here.
We added the logic to parse #room-name to <mention-report>#room-name</mention-report> here, but since we only allow report mentions to happen inside policy rooms, we should prevent the parsing from happening for messages sent outside of a policy room.
Issue OwnerCurrent Issue Owner: @greg-schroeder

Hi, can you assign me to this issue?

PR for parser is ready

@greg-schroeder @ahmedGaber93 was the PR reviewer.

Okay got it - set for payment on 5/9

Going to add Internal label just to create an upwork job

Offer sent to @ahmedGaber93 ahead of 5/9 payment date

@greg-schroeder offer is accepted, Thanks!

paid

authors: ahmedGaber93 greg-schroeder rlinoz robertKozik


text:
Update avatars for #announce and #admins default rooms

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:

Add account to defaultRooms beta
Search for a default room - either #announce or #admins
See avatar

Expected Result:
Avatars should be more related to the purpose of the room itself:

#announce - Mega phone

#admins - shield

Actual Result:
Both rooms use a couch icon
Notes/Photos/Videos:

Slack conversation: https://expensify.slack.com/archives/C02MW39LT9N/p1646421753395089?thread_ts=1646419035.253859&cid=C02MW39LT9N
View all open jobs on GitHub

Triggered auto assignment to @trjExpensify (AutoAssignerTriage), see https://stackoverflow.com/c/expensify/questions/4749 for more details.

Well would ya look at that @trjExpensify 😀 !

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

My, my.. issue looks good! I'll keep myself assigned for the CM piece anyhow, once Bondy has given it the all clear and adds the External label.

👍 seems straight forward, throwing external on this one

Triggered auto assignment to Contributor-plus team member for initial proposal review - @rushatgabhane (Exported)

Triggered auto assignment to @stitesExpensify (Exported), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

Hmm, I spent too much time thinking if we can do this in a cleaner way.

🎀 👀 🎀 C+ reviewed
@stitesExpensify I like @thesahindia's proposal.

I also like the proposal! @thesahindia I also agree that functions is the way to go here.
Feel free to apply on upwork Sahil!

Feel free to apply on upwork Sahil!

Done ✅
Looks like we don't have these icons right now. @kevinksullivan, can you please share the SVGs here?

cc @Expensify/design do these icons exist yet?

I can grab this one. I think the room icons are provided as full square svgs? @stitesExpensify can you share here what the existing room icon looks like, then I will provide new ones? I think we had previously chatted about making them all use a dark background so perhaps we can make that change here too.

@thesahindia you can take it from here with shawn :)

https://github.com/Expensify/App/issues/8147#issuecomment-1068772423 - Hired on Upwork, assigning you the issue @thesahindia. 👍

Great, here are the updated icons: Expensify-RoomIcons.zip

📣 @thesahindia You have been assigned to this job by @trjExpensify!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

Waiting on a prod deploy, Melv!

Looks like we're all good here?

I think they are okay for now.

Cool, cool. Settled up!

authors: MelvinBot bondydaa kevinksullivan rushatgabhane shawnborton stitesExpensify thesahindia trjExpensify


text:
Payments - App is freezing after open Debit Card option under Payments and trying to close

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

Issue was found when executing PR: https://github.com/Expensify/App/pull/8682
Action Performed:

Launch the app
Log in with expensifail account
Navigate Workspace > Connect bank account several steps along the flow
Navigate Payments > Add payment method > Debit card
Close the page

Expected Result:
User should be able to close the Debit Card option under Payments
Actual Result:
App is freezing after open Debit Card option under Payments
Workaround:
Unknown
Platform:

Where is this issue occurring?

iOS

Version Number: 1.1.57.0
Reproducible in staging?: Yes
Reproducible in production?: No
Email or phone of affected tester (no customers): applausetester+42222abb@applause.expensifail.com/Feya86Katya
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/165560092-11808de3-5cd6-4182-bcd3-7f8d84434237.MP4
Expensify/Expensify Issue URL:
Issue reported by: Applause
Slack conversation:
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

I don't spot anything in the checklist that looks like it would directly cause this. I'm trying to reproduce the issue now.
It appears like it works in web, so I'll move onto iOS next.

FWIW I can't reproduce either.
Also, to clarify, in the reproduction steps, you say:

Navigate Workspace > Connect bank account several steps along the flow

Does the issue only occur if you go through the workspace bank account flow first?

@francoisl One account can reproduce this issue.

I think if we can't find anyone else that can reproduce this, then we can just close it and not have it be a deploy blocker.

authors: OSBotify francoisl kbecciv tgolen


text:
Update to Webpack 5 and peer dependencies

Details

Fixed Issues

$ #10033
Tests

Verify you can install app dependencies and that no errors appear. (npm install)
Verify you can still run the web locally and use the app normally with no issues. (npm run web)

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

PR Review Checklist

Contributor (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 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 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 tagging the marketing team 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] 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] Any functional components have the displayName property
[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 Contributor+ 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 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 checked that screenshots or videos are included 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

[ ] 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)
[ ] 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 tagging the marketing team 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
[ ] 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 */
[ ] Any functional components have the displayName property
[ ] 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.

QA Steps

[ ] Verify that no errors appear in the JS console

Screenshots

Web

Mobile Web

Desktop

iOS

Android

Whoa, there are a huge amount of unrelated changes here. I'm not sure what you did to have 265 commits, but this is not reviewable or mergeable.
My best guess is that you need to sync your fork of this repo with the upstream and try again on a fresh branch.


text:
[WIP] test branch for thread header

Details

Fixed Issues

$ GH_LINK
PROPOSAL: GH_LINK_ISSUE(COMMENT)
Tests

[ ] Verify that no errors appear in the JS console

Offline tests

QA Steps

[ ] Verify that no errors appear in the JS console

PR Author Checklist

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

[ ] I added steps for local testing in the Tests section
[ ] I added steps for the expected offline behavior in the Offline steps section
[ ] I added steps for Staging and/or Production testing in the QA steps section
[ ] I added steps to cover 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 included screenshots or videos for tests on all platforms
[ ] I ran the tests on all platforms & verified they passed on:

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

[ ] 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)
[ ] I followed proper code patterns (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 the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] 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 is localized by adding it to src/languages/* files and using the translation method

[ ] 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:

[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is 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 followed the guidelines as stated in the Review Guidelines
[ ] 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)
[ ] 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 any new file was added I verified that:

[ ] 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

[ ] 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 code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] 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.
[ ] 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.
[ ] 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.
[ ] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

outdated, closing


text:
[NO QA] Add comment clarifying "Chats" translation

Details
People were getting confused why "Chats" was in the Spanish translations and incorrectly creating bugs (ex)
Fixed Issues

$ N/A (source)
PROPOSAL:
Tests
N/A
Offline tests
N/A
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 the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[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 grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is 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] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[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 code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[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 the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[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

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

bump @roryabraham @cead22 I think we can just approve + merge directly here?

Reviewer Checklist

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

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] 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)
[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 checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

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

[x] 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
[x] I verified proper code patterns were followed (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 the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[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] 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 grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is 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 verified that this PR follows the guidelines as stated in the Review Guidelines
[x] 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)
[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] 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 code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[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 reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

: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 https://github.com/jasperhuangg in version: 1.3.86-0 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/francoisl in version: 1.3.86-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

authors: OSBotify jasperhuangg