text:
[$250] Open duplicate expense - “This expense is on Hold” content overlaps with the keyboard.

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: 9.0.50-5
Reproducible in staging?: y
Reproducible in production?: y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?:
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: @suneox
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1729092611052969
Action Performed:
Precondition:

New account with betas enabled for duplicate expense.
Two workspaces created.

Submit 2 expenses to Workspace A.
Submit 2 expenses with the same value as in Step 1 to Workspace B.
Open the expense group.
Select the duplicate transaction.

Expected Result:
The modal introducing “This expense is on Hold” is open and the content should be fully visible without any overlap.
Actual Result:
The modal introducing “This expense is on Hold” opens and the content overlaps with the keyboard.
Workaround:
unknown
Platforms:

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

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

Screenshots/Videos

Add any screenshot/video evidence
https://github.com/user-attachments/assets/5bd2f6a5-e65a-4fd5-94a8-b5d01c37c8e6

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

Upwork Job URL: https://www.upwork.com/jobs/~021849438927318784165
Upwork Job ID: 1849438927318784165
Last Price Increase: 2024-11-07

Issue OwnerCurrent Issue Owner: @paultsimura

@muttmuure I think this issue can make for external. I have more context on it so I can assist with reviewing the proposal as a C+.
https://github.com/user-attachments/assets/635e4b6a-8d73-4b7b-9562-ac340599b258

Proposal
Please re-state the problem that we are trying to solve in this issue.
Open duplicate expense - “This expense is on Hold” content overlaps with the keyboard
What is the root cause of that problem?
We're not dismissing the keyboard when navigation to PROCESS_MONEY_REQUEST_HOLD page
https://github.com/Expensify/App/blob/e4fe4c4fe126db86cd3ecb8d918d81d14ac09942/src/components/MoneyReportHeader.tsx#L302-L305
And same here
https://github.com/Expensify/App/blob/e4fe4c4fe126db86cd3ecb8d918d81d14ac09942/src/components/MoneyRequestHeader.tsx#L133-L136
What changes do you think we should make in order to solve the problem?
We should dismiss the keyboard before navigating
if (isSmallScreenWidth) {
    if (Navigation.getActiveRoute().slice(1) === ROUTES.PROCESS_MONEY_REQUEST_HOLD.route) {
        Keyboard.dismiss();
        Navigation.goBack();
    }
} else {
    ...

What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
mWeb - Dupe detect - Keyboard displayed below educational modal when open dupe expense
What is the root cause of that problem?
The composer auto focuses on opening the transaction thread and then popover will be open as soon as shouldShowHoldMenu is set to true here
https://github.com/Expensify/App/blob/f46bce0b96c533b6aac0e2464ae27615101a7f7d/src/components/MoneyRequestHeader.tsx#L127
so the popover will overlap with the keyboard
What changes do you think we should make in order to solve the problem?

We should blur the report action compose whenever we display the hold menu (isVisible changes to true)
Here
https://github.com/Expensify/App/blob/f46bce0b96c533b6aac0e2464ae27615101a7f7d/src/components/ProcessMoneyRequestHoldMenu.tsx#L44
useEffect(() => {
        if (!isVisible) {
            return;
        }
        ReportActionComposeFocusManager.composerRef.current?.blur();
    }, [isVisible]);

FYI: Keyboard.dismiss doesn't suffice as the cursor will be visible under the popover and most importantly it doesn't work for web
What alternative solutions did you explore? (Optional)
We can also use Focus Trap in ProcessMoneyRequestHoldMenu (or generally in Popover component) by passing isVisible to active prop, that will automatically defocus the compose or any other text input when the popover is displayed

@paultsimura Looks like the behaviour has changed; can't reproduce the bug in both mweb and native
https://github.com/user-attachments/assets/095ebddf-a6e3-4a6d-bc6e-45f136868ea6
Can you?

Let's close

authors: FitseTLT NJ-2020 m-natarajan muttmuure suneox


text:
Update API.md to reflect microtime keyed errors

@iwiznia @bondydaa @neil-marcellini @Gonals @chiragsalian @MariaHCD please review
Update the API.md docs to reflect the fact that we want errors returned in an array keyed by the microtime.

I'm actually curious how we want to handle the "other additional properties" case - should those also be keyed under the microtime?

@neil-marcellini updated for your suggestion!

: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 @yuwenmemon in version: 1.1.87-0 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
failure ❌

🚀 Deployed to production by @yuwenmemon in version: 1.1.87-9 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

source: gharchive/pull-request

authors: OSBotify yuwenmemon

repo: Expensify/App

license: MIT

license_type: permissive

license_source: github-api


text:
Remove renderCell method as it's no longer needed and causes errors

@dangrous please review
Details
Based on the discussion here, we're removing adding z-indexes to the message cells within a chat, since there is no issue with them being cut off without them, and they're causing an issue with the context menu escaping the cursor.
Fixed Issues
$ https://github.com/Expensify/App/issues/12687
Tests/QA

Open up a chat with more than 50 messages, scroll up to load paginated messages
For all the messages in the chat, hover over the context menu
Make sure that the context menu can interacted with easily (if the context menu is not working just add the changes from this PR - it's a known and separate issue)
Add new messages to the chat, make sure you can do so without error/crashing
Make sure you can hover onto and interact with the context menu for those new chats.

[ ] Verify that no errors appear in the JS console

PR Author Checklist

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

[x] I added steps for local testing in the Tests section
[x] I added steps for 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 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] If a new component is created I verified that:

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

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

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

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

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

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

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for 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 included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

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

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

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

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

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

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

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

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

Screenshots

Web
https://user-images.githubusercontent.com/4741899/201433948-b8dac47b-1760-42ec-bd4b-43516c9993bc.mp4
Mobile Web - Chrome
https://user-images.githubusercontent.com/4741899/201435677-dcb195af-23b0-4e5b-867a-dcf2b1b1aee3.mp4
Mobile Web - Safari
https://user-images.githubusercontent.com/4741899/201435207-55a1df62-5abc-4369-8d30-37c5f926127e.mp4
Desktop
https://user-images.githubusercontent.com/4741899/201434358-c91b27c7-af99-40f0-8be4-299057ab953f.mp4
iOS
https://user-images.githubusercontent.com/4741899/201435098-25b7439c-1bbf-4cd6-a1a4-72a012c8ee63.mp4
Android
https://user-images.githubusercontent.com/4741899/201435666-59bd1b06-d351-4cb1-8be6-40190c0165d4.mp4

Reviewer Checklist

[ ] 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 included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

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

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

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

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

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

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

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

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

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

🚀 Cherry-picked to staging by @thienlnam in version: 1.2.27-3 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

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

🚀 Cherry-picked to staging by @thienlnam in version: 1.2.27-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

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

🚀 Deployed to production by @roryabraham in version: 1.2.27-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
success ✅

🚀 Deployed to production by @roryabraham in version: 1.2.27-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Cherry-picked to staging by https://github.com/AndrewGable in version: 1.3.28-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

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

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

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

authors: OSBotify thienlnam yuwenmemon


text:
[Core Branding] Fix Web Fonts (bold/italic)

Details

Fixes font-family for crispier fonts. Also fixes italic mono bug
Fixed Issues

$ https://github.com/Expensify/App/issues/13413
Tests

[ ] Verify that no errors appear in the JS console
[ ] Open a chat and send a bold, italic, italic and bold, strikethrough, and regular chat
[ ] Do the same for mono
[ ] Open the console and verify that CSS for each font is using ExpensifyNeue-Regular

Offline tests

QA Steps

[ ] Verify that no errors appear in the JS console
[ ] Open a chat and send a *bold*, _italic_, *_italic and bold_*, ~strikethrough~, and regular chat
[ ] Do the same for  `mono` (ex: *`mono bold`*)
[ ] Open the console and verify that CSS for each font is using ExpensifyNeue-Regular

PR Author Checklist

[x] 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
[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)
[ ] 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).

[ ] 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
[ ] Android / native
[x] iOS / Safari
[x] Android / Chrome
[x] MacOS / Chrome
[x] MacOS / Desktop

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

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

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

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

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

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

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] 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

Did some local testing and this is feeling pretty good to me!

Would be curious to see this on mobile web to see if we solved it over there too.

Added screenshots for mobile web on emulators

Waiting for android build for final screenshot, so I'm gonna open this for review now

It looks like mono styles don't work on android (on main as well). I posted screenshots

I'm not thinking, this PR is for web styles. Do we want to allow styled mono on android/ios? Or do nothing and leave it as is for now

We should definitely plan to fix mono - can you share screenshots of what that looks like? Also while you are at it, could you confirm that the new font is working on the native Android app?
In terms of fixing mono though, we could totally do it in a separate PR, or bundle it into this one if you'd like to - your call!

Here's the screenshot I took before on native android- looks like the mono styles are all the same

https://expensify.slack.com/archives/C01GTK53T8Q/p1670546775495159

sike ...looks like I broke it 😂. Gonna throw this back in WIP to fix

Oh wow, but it looks like none of the regular Neue fonts are working correctly on Android?

Would someone mind building this branch on android and sending a screenshot?

@grgia do you need an Android physical device? or emulator is fine here?

If you are set up to test DEV on a physical android, that would be great. Otherwise, the emulator should be fine.

This is ready for review! Here's updated screenshots.
@shawnborton I believe if we want to support italic mono on mobile, we may need to add the font files?

Mobile Chrome
Android
Mobile Safari
IOS

Web
Desktop

@grgia This is how it looks on my physical Android device. The mono with 1 looks a bit different in your screenshot vs mine.

we want to support italic mono

Based on the answer to this I guess our values MONOSPACE_ITALIC and MONOSPACE_BOLD_ITALIC will update right?

@mananjadhav That looks good! the mono with a 1 on mine is actually mono with an l (L), I tested with numbers and that looks correct to me

Thanks for clarifying @grgia. Testing out the other platforms now.

I believe if we want to support italic mono on mobile, we may need to add the font files?

@grgia yup, I say we can follow up with that one as we'll first need to have the foundry (CoType) create these files/styles for us.

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] iOS / native
[x] Android / native
[x] iOS / Safari
[x] Android / Chrome
[x] MacOS / Chrome
[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 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 correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I 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)
[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 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.
[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] 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

@grgia do we maintain any internal regression test suite for fonts & styles? If yes, can that be shared here so that I can test that too. Otherwise rest of it looks good and tests well.

Screenshots look great, nice and crispy - nice work Georgia!

@mananjadhav we don't currently have regression test steps for fonts, but will be adding them as core branding changes are finalized.

Okay thanks for the update. I’ve tested them the composer with all font styles. I’ve also completed the checklist.

New Kansas isn't actually ready to go yet, we haven't finalized the EULA - so that being said, it should have never been added to begin with. So if anything, I say we just rip out the NK files from this PR and then we follow up as a separate PR/issue to add NK when we get the green light.

Ok, so knowing that we can just:

Replace NewKansas with the old header font (Fabriga, if memory serves?)

Nix this change from my review above:

Make sure we update this line to also look for the ExpensifyNewKansas .otf files on web.

We should definitely not include Fabriga, that is not a brand font. Let's just get rid of the NK files for now and keep all of the font styles as they are, where are just using Expensify Neue for headline moments.

Or yeah, like you said, just do nothing with the NK files that are there.

I just renamed the New Kansas file to match postscript in the android assets folder so when we do decide to use it, it won't break. Is it going to be replaced in the future anyways?

It won't be replaced, it's the actual font (and font files, I think) that we'll be using.

Made changes and added new screenshots!

@mananjadhav Can you please retest and provide updated screenshots?

: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 @roryabraham in version: 1.2.42-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @yuwenmemon in version: 1.2.42-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

authors: OSBotify grgia mananjadhav roryabraham shawnborton


text:
Fix: Connect Bank account - Crash when completed adding BA manually

Details

https://github.com/Expensify/App/issues/28811
Fixed Issues

$ https://github.com/Expensify/App/issues/28811
PROPOSAL: https://github.com/Expensify/App/issues/28811#issuecomment-1746914377
Tests

Open any workspace and start bank account flow
Reach to step 4 and click next after selecting required checkboxes
Verify console warning isn't shown for testID

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

Offline tests

Open any workspace and start bank account flow
Reach to step 4 and click next after selecting required checkboxes
Verify console warning isn't shown for testID

QA Steps

Open any workspace and start bank account flow
Reach to step 4 and click next after selecting required checkboxes
Verify console warning isn't shown for testID

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

PR Author Checklist

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

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

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

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

Web
https://github.com/Expensify/App/assets/14358475/44ac6f64-fb17-4037-b27b-abc7a8246464

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@srikarparsi setting displayName for class component failing the lint with
error  Class components must not set the displayName property  rulesdir/display-name-property
So assigned the string value directly to testID in the latest commit.

Closing this PR in favor of https://github.com/Expensify/App/issues/28334 as PR for that issue targeting the same.


text:
Fix the current issue and regression

Details

Fix the current issue and regression.
Pass transactionID prop to AttachmentView in AttachmenModal, pass originalFileName to AttachmentModal in ReportActionItemImage and refactor logic of headerTitle
Fixed Issues

$ https://github.com/Expensify/App/issues/31105
$ https://github.com/Expensify/App/issues/32501
$ https://github.com/Expensify/App/issues/32504
$ https://github.com/Expensify/App/issues/32514
PROPOSAL: https://github.com/Expensify/App/issues/31105#issuecomment-1803588737
Tests

Fix issue 31105

Create a scan request
Go to IOU report
Send an attachment
Open attachment preview
Verify that the receipt image isn't in carousel
Click on the request preview to go to IOU detail page
Send a attachment
Click on receipt image
Verify that the receipt image isn't carousel

Fix issue 32501

Go offline
Create a distance request
Go to transaction thread report of this request
Click on receipt image
Verify that the EReceipt image is displayed

Fix issue 32504

Log in as the WS employee
Navigate to expense request conversation that has a receipt
Click on the receipt thumbnail
Verify there's a 3 dot menu on the top right
Click on replace
Upload a new receipt
Verify the new receipt is displayed in the request
Click on the receipt thumbnail
Click close the receipt thumbnail
Verify that the modal is closed and edit receipt page doesn't appear

Fix issue 32514

Tap on a group chat
Tap header display names
Tap on a profile icon
Verify that display name is displayed in attachment modal

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

Offline tests

Same as above
QA Steps

Fix issue 31105

Create a scan request
Go to IOU report
Send an attachment
Open attachment preview
Verify that the receipt image isn't in carousel
Click on the request preview to go to IOU detail page
Send a attachment
Click on receipt image
Verify that the receipt image isn't carousel

Fix issue 32501

Go offline
Create a distance request
Go to transaction thread report of this request
Click on receipt image
Verify that the EReceipt image is displayed

Fix issue 32504

Log in as the WS employee
Navigate to expense request conversation that has a receipt
Click on the receipt thumbnail
Verify there's a 3 dot menu on the top right
Click on replace
Upload a new receipt
Verify the new receipt is displayed in the request
Click on the receipt thumbnail
Click close the receipt thumbnail
Verify that the modal is closed and edit receipt page doesn't appear

Fix issue 32514

Tap on a group chat
Tap header display names
Tap on a profile icon
Verify that display name is displayed in attachment modal

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

PR Author Checklist

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

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

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

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb 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 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.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/129500732/f2705e67-d50b-4ae5-9b8b-bec15adf89e2

Android: mWeb Chrome
https://github.com/Expensify/App/assets/129500732/cce3185c-1f50-4a4d-b24e-95555408ba7a

iOS: Native
https://github.com/Expensify/App/assets/129500732/d78d6192-78dd-42ea-8e49-286e63bf1da0

iOS: mWeb Safari
https://github.com/Expensify/App/assets/129500732/3d8c593f-726b-402d-bbca-bac4e63b79ff

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/129500732/565a2bce-186f-4eb4-8a18-6ca4d3953d2a

MacOS: Desktop

Fix issue 31105

https://github.com/Expensify/App/assets/129500732/a4f1725e-2a17-42aa-b91b-375a5fafe583

Fix issue 32501

https://github.com/Expensify/App/assets/129500732/6f052127-8ca2-4c88-8877-980caa2df583

Fix issue 32504

https://github.com/Expensify/App/assets/129500732/b734ee17-0759-458f-a0f0-08c745f1f569

Fix issue 32514

https://github.com/Expensify/App/assets/129500732/1df3da9e-b362-4b6c-a66b-45a256e41e8d

And one more thing. AttachmentView has transaction coming from withOnyx as well as from prop in AttachmentModal. Can you fix this?

Please update the details section too

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: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb 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 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 reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/58412969/30b69023-f9d5-41c0-a226-6582cd19910b

Android: mWeb Chrome
https://github.com/Expensify/App/assets/58412969/8891ce81-9328-4d3b-b447-a9f69273291a

iOS: Native
https://github.com/Expensify/App/assets/58412969/872ef9cc-6558-4766-aad9-8f8693478fbd

iOS: mWeb Safari
https://github.com/Expensify/App/assets/58412969/f0367101-7c34-4597-9a9e-8581bfb84306

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/58412969/e65a5c33-c3ea-404a-a586-ab2aecb81eb9

MacOS: Desktop
https://github.com/Expensify/App/assets/58412969/42bf9088-860f-4edb-aafc-dc65b4f6c081

: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/hayata-suenaga in version: 1.4.12-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/hayata-suenaga in version: 1.4.12-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/hayata-suenaga in version: 1.4.12-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Julesssss in version: 1.4.12-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


text:
cleanup: remove unused betas params

Details

While working on some other issue I noticed that there were some use cases where we pass the betas parameter around, although its not used in the end.
It happened when people were splitting out functions and typescript types weren't updated accordingly, hence nobody noticed. Its just grown historically.
Fixed Issues

$
PROPOSAL:
Tests

n/a, just removing dead/unused code.
Offline tests

n/a, just removing dead/unused code.
QA Steps

n/a, just removing dead/unused code.
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: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb 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 either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[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 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(theme.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 the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

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

Screenshots/Videos

Android: Native

As this just removed dead code I felt its not necessary to create recordings for this. Let me know if I am wrong on this one!

Android: mWeb Chrome

As this just removed dead code I felt its not necessary to create recordings for this. Let me know if I am wrong on this one!

iOS: Native

As this just removed dead code I felt its not necessary to create recordings for this. Let me know if I am wrong on this one!

iOS: mWeb Safari

As this just removed dead code I felt its not necessary to create recordings for this. Let me know if I am wrong on this one!

MacOS: Chrome / Safari

As this just removed dead code I felt its not necessary to create recordings for this. Let me know if I am wrong on this one!

MacOS: Desktop

As this just removed dead code I felt its not necessary to create recordings for this. Let me know if I am wrong on this one!

Reviewer Checklist

[ ] 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 included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

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

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

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that 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
[ ] 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 either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] 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 */
[ ] 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(theme.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 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.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

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

: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/deetergp in version: 9.0.21-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Beamanator in version: 9.0.21-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
success ✅

🕸 web 🕸
failure ❌

🚀 Deployed to production by https://github.com/Beamanator in version: 9.0.21-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

authors: OSBotify deetergp hannojg


text:
Remove unnecessary style causing bug in android

cc: @pecanoro  @marcaaron @jasperhuangg CC you guys because you have a good idea of what was going on.
Details
I labeled this CP Staging because it is fixing the following regression: https://github.com/Expensify/App/issues/4730#issuecomment-904268814
The style errorOutline was unnecessary and was causing an unwanted behaviour in Android.
Fixed Issues
$ https://github.com/Expensify/App/issues/4730
Tests/QA

Navigate to <baseURL>/bank-account/company.
Input invalid data for the following fields and try to submit the form. Verify that red outlines AND growl messages occur.

Empty password
Invalid address street
Invalid address zip code
Invalid website URL
Invalid company tax ID
Invalid industry code
Invalid incorporation date

Make sure that in Android the value of the input with error doesn't disappear .
Expected to look like this:

Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[ ] iOS
[x] Android

Screenshots

Web

Mobile Web

Desktop

iOS

Android

@aldo-expensify Feel free to self-merge once tests pass.

The style errorOutline was unnecessary and was causing an unwanted behaviour in Android.

I get that it was unnecessary since it looks like we wrapped the TextInput in a View that already has an outline...
https://github.com/Expensify/App/blob/eb73fd3e727d7adc7fe5cc2e20b39587fb4ac3e7/src/components/ExpensiTextInput/BaseExpensiTextInput.js#L136
But is there some explanation for why this should make the element value completely disappear? 🤯

@marcaaron I don't have good explanation for it, but what I found is:

The text content didn't really disappear, it was there but out of view. The input of is scrollable and if you scroll you eventually can see the text, but the space available for the text is very small:

https://user-images.githubusercontent.com/87341702/130698811-b848c7be-959f-47c3-8917-a84e065c4d0d.mov

In Android we have to make the padding 0 (see styles.expensiTextInputAndroid). If use we a small padding value, i.e. 4:

    expensiTextInputAndroid: left => ({
        padding: 4,
        left,
    }),

The space for the input text becomes smaller and we get some scrolling:
https://user-images.githubusercontent.com/87341702/130698503-057f6093-0184-46f1-8ad9-97411771aef2.mov

If we remove the padding: 0 completely from styles.expensiTextInputAndroid, the input value is not visible anymore (too much padding?).

I don't know why, but adding the style errorOutline to the TextInput seems to somehow mess up this in a similar way as adding padding messes it up. Maybe when we add the borderColor Android does something with the padding? 🤷  I just found that this fixed it by trial an error, removing and putting back things.

Update: had to resolve conflict and commit again.

@aldo-expensify Can this be tested on your side? We're currently unable to navigate to /bank-account/company in Android or iOS bc we don't have access to the current URL in the app.

@aldo-expensify Can this be tested on your side? We're currently unable to navigate to /bank-account/company in Android or iOS bc we don't have access to the current URL in the app.

Sure, I'm waiting on the (PR)[https://github.com/Expensify/App/pull/4814] to be approved and merged.

🚀 Deployed to production by @roryabraham in version: 1.0.88-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

authors: OSBotify aldo-expensify isagoico luacmartins marcaaron


text:
Fix: list is cut off at bottom in LHN

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/5005
Tests | QA Steps

Open LHN on IOS.
Check the LHN should not hide behind the bottom home bar.

Please test https://github.com/Expensify/App/issues/3637 as well which will be directly affected by this PR.
Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[x] iOS [Affected Platfrom]
[x] Android

Screenshots

Web

Mobile Web

Desktop

iOS

https://user-images.githubusercontent.com/24370807/137527541-c5bede00-75ab-47ec-b30a-5eedb181b937.mp4
Android

@iwiznia Could you please review this?

Gentle Bump... I am getting impatient here. There is another step on my proposal after this PR but we can't test that until this is merged.

🚀 Deployed to staging by @iwiznia in version: 1.1.8-10 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

authors: OSBotify parasharrajat


text:
Password sign in form has error msg

Password  in sign-in form has error message when user triggers an error on his/her password and goes back to email sign-in form type his/her email continues to password form and then the error occurs from the previous password error.
https://user-images.githubusercontent.com/60424062/170525504-3f12c555-5616-45a2-994c-7fc6e0c5a619.mov
fixes applied are in PL

I have read the CLA Document and I hereby sign the CLA

Hi @MarionRosete,
This looks like a legitimate issue, but I need to see a link the issue that you fixed. Also, please use the standard PR template. If there isn't already an issue for this, please create a bug in the #expensify-open-source Slack channel. For more info about our process please read CONTRIBUTING.md.

authors: MarionRosete neil-marcellini


text:
Change GSD to focus

Details
We need to change "Get Shit Done" to "#focus" to prevent our app from being rejected by the app stores due to illicit language.
Fixed Issues
Slack discussion here
Tests / QA Steps

Open the preferences page
Change the priority mode, make sure you see #focus and not GSD in the drop-down.
The description beneath should not include the word "shit".

Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[x] iOS
[x] Android

Screenshots
Web

Mobile Web

Desktop

iOS

Android

Merging to unblock android deploys

@roryabraham looks like this was merged without passing tests. Please add a note explaining why this was done or remove the Emergency label if this is not an emergency.

authors: botify roryabraham


text:
Fix logout button in admin pages

Currently, when the admin clicks on logout, the site redirects to the login.html file which is a template file just for reference (as mentioned in the README.md.
The ideal behaviour is that the page should call admin-logout.php which will unset session variables and logout admin.
Files where changes are required:

admin-home.php
admin-centre.php
admin-approve.php
admin-slots.php

I want to work on this issue. Please assign it to me.

source: gharchive/issue

repo: Exter-dg/CovID


text:
🛑 SM Medialogia is down

In e525133, SM Medialogia (https://sm.mlg.ru) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SM Medialogia is back up in b7590c5 after 7 minutes.


text:
main.js 引用不了 css 文件

我在main.js 里引入  import './styles/common.css' 就报这个错误，怎么情况？

更新最新版，另外引用文件最好还是用 @/xxx 这种

authors: CarmenHYC F-loat

repo: F-loat/mpvue-entry


text:
Can not create directory /run/user/0 - Permission denied

2024-05-20 15:56:14 INFO     Loading cookies from /root/configs/copilot.json
2024-05-20 15:56:14 INFO     Loaded 17 cookies
2024-05-20 15:56:14 INFO     Adding chrome options
2024-05-20 15:56:14 INFO     Using user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36
2024-05-20 15:56:14 INFO     Initializing driver in headless mode
2024-05-20 15:56:14 INFO     Browser executable path: /snap/bin/chromium
2024-05-20 15:56:14 INFO     Running /snap/bin/chromium --version
mkdir: cannot create directory ‘/run/user/0’: Permission denied
2024-05-20 15:56:14 INFO     Detected major version: 124
2024-05-20 15:56:14 ERROR    ms_copilot initialization error

This after providing google-chrome browser and driver path in ms_copilot config,
2024-05-20 16:06:56 INFO     Loading cookies from /root/configs/copilot.json
2024-05-20 16:06:56 INFO     Loaded 17 cookies
2024-05-20 16:06:56 INFO     Adding chrome options
2024-05-20 16:06:56 INFO     Using user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36
2024-05-20 16:06:56 INFO     Initializing driver in headless mode
2024-05-20 16:06:56 INFO     Browser executable path: /usr/bin/google-chrome
2024-05-20 16:06:56 INFO     Running /usr/bin/google-chrome --version
2024-05-20 16:06:56 INFO     Detected major version: 125
2024-05-20 16:06:56 ERROR    ms_copilot initialization error
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/lmao/module_wrapper.py", line 88, in _initialization_thread
    self._module_class.session_start(**kwargs)
  File "/usr/local/lib/python3.10/dist-packages/lmao/ms_copilot/ms_copilot_api.py", line 356, in session_start
    raise e
  File "/usr/local/lib/python3.10/dist-packages/lmao/ms_copilot/ms_copilot_api.py", line 301, in session_start
    self.driver = undetected_chromedriver.Chrome(
  File "/usr/local/lib/python3.10/dist-packages/undetected_chromedriver/__init__.py", line 258, in __init__
    self.patcher.auto()
  File "/usr/local/lib/python3.10/dist-packages/undetected_chromedriver/patcher.py", line 136, in auto
    most_recent = max(files, key=lambda f: f.stat().st_mtime)
ValueError: max() arg is an empty sequence


text:
dedup k8s/openshift install manifests

install manifests for k8s and OpenShift are present in both the product docs and in the solution docs.
Solution docs should reference an authoritative version in the product docs.

Will be addressed by the move from this repo into individual product repos.

authors: jputrino recursivelycurious


text:
RFE - Enhance DO to prevent AWS hostname updates via dhclient

We are currently running into an issue in AWS where a DO specified hostname is not being maintained on a BIG-IP instance.  It appears that AWS is overwriting our device hostname via dhclient even though dhclient is disabled in the db settings.  It would be great if DO provided a configuration mechanism to prevent this situation.

I had this same issue before. I managed to get it working after fixing my DO json file.
Looks like it had a problem with creating an user object and it rolled back the rests of the DO configurations.
If you manage to GET ( https://<BIG-IP>/mgmt/shared/declarative-onboarding), you will see a "selfLink" line. Then you should try to GET that URL and see if there is any issue.
Mine looked like this:
{
    "id": "4fcdcc04-0c5c-442d-8e1f-dfe46e145705",
    "selfLink": "https://localhost/mgmt/shared/declarative-onboarding/task/4fcdcc04-0c5c-442d-8e1f-dfe46e145705",
    "result": {
        "class": "Result",
        "code": 200,
        "status": "OK",
        "message": "success"
    },

Of course, you need to change the localhost by your dns or bigip's name when using GET to check results.
Hope it helped!

@btully What DB settings are you trying to set?
I have created an internal product backlog item AT-807 to apply the work around found in K45728203 when a hostname is specified in a DO declaration.

This was resolved a few versions ago. Closing this issue. If you are still experiencing a problem with the latest version, please reopen the issue or create a new one.

authors: btully dstokesf5 ikauzak


text:
Peter/geneswitch organoids

Please review this new section to the sample metadata ruleset and confirm that its connection to the standard rules is correct.
If approved please make the necessary changes to the templates and validator to support its function.

Following review have removed organoid size field.

repo: FAANG/dcc-metadata


text:
Supersize text

To Reproduce
right click into the title field

lol

1.1.2-RC1
on linux too
but i can find normal ones too. the Password field is ok for example:

it seems that dues to the dfference in font 2em on the text field are different font size then for the context menu

repo: FAForever/downlords-faf-client


text:
Mazumder - Add 2 new columns to SARS-CoV-2 assemblyQC

For SARS-CoV-2 assemblyQC table, please add column 1) number of frameshift and 2) number of stop codons (i.e. Gene | Number of Frameshift | Number of Stop Codon). In addition, values allowed are 0 to 1000 or leave the cell empty.
Please check with Raja for others that are potentially worth considering. Please also wait until Jingyue finishes #182

Complete. Gene was left out per Raja's recommendation.

authors: JingyueWu steph-sing


text:
ESC button unusuable after enabling auto-gather.

how to replicate: enable auto-gather, ESC button is unusable for showing menu. disable plugin, ESC button works to show menu.

I hope a fix for this is still being worked on. I see the work around option but would rather not have that disabled as a permanent solution.

authors: Dedoooo Sunflowertism

repo: FFXIV-CombatReborn/GatherBuddyReborn


text:
buildtool -G Ninja -p doesn't work as expected

I'm having issues using the Ninja generator with buildtool, where if I do a second build with no changes to the source, buildtool skips the package stage with an error:
------------------------------------
INFO: stage package for artdaq_core v3_09_10 SKIPPED - target package not configured
------------------------------------

However, running ninja package correctly produces the bz2 file and sha hash.

Is this a standalone build or within MRB? Could you please include instructions to reproduce?

This was a standalone build, but now I can't reproduce it manually (I was using a script to build)...

Please feel free to resubmit if this crops up again.

authors: eflumerf greenc-FNAL

repo: FNALssi/cetmodules


text:
LocalWriteStrobe output from eFPGA_Config

Hi,
The LocalWriteStrobe output from eFPGA_Config doesn't seem to connect to any other blocks in my generated fabric and in the demo. Is this correct?
Best regards,
Rob.

It is instantiated under the top wrapper.
https://github.com/FPGA-Research-Manchester/FABulous/blob/eae6d7d6ad58c136857b99702c6275fb7bc6795e/fabric_generator/fabric_gen.py#L1837-L1863

Yes it is an output from eFPGA_config instanciated in eFPGA_top, but it doesn't connect to anything, unless I am missing something?
Seems like a redundant signal, but want to make sure!

I misread what you said and commented, which I found out later, so I deleted the comment.
My answer is I am not sure and will need to ask @dirk-koch. But since we did not use it and could simulate without it, it is probably unnecessary?

repo: FPGA-Research-Manchester/FABulous


text:
cassandra monitor

nodetool:
proxyhistograms and tablehistograms
proxy histograms
Percentile      Read Latency     Write Latency     Range Latency
(micros)          (micros)          (micros)
50%                   654.95              0.00           1629.72
75%                   943.13              0.00           5839.59
95%                  4055.27              0.00          62479.63
98%                 62479.63              0.00         107964.79
99%                107964.79              0.00         129557.75
Min                   263.21              0.00            545.79
Max                107964.79              0.00         155469.30

Note that in Cassandra releases through the 3.X series, the metrics reported are lifetime metrics since the node was started. To reset the metrics on a node, you have to restart it. The JIRA issue CASSANDRA-8433 requests the ability to reset the metrics via JMX and nodetool.

将performance issue 限定到某个keyspace,和table中非常有必要的

BEWARE THE LARGE PARTITION

enable trace
cqlsh:hotel> TRACING ON

trace log from java client
SimpleStatement hotelSelect = session.newSimpleStatement(
"SELECT * FROM hotels WHERE id='AZ123'");
hotelSelect.enableTracing();
ResultSet hotelSelectResult = session.execute(hotelSelect);
QueryTrace queryTrace = hotelSelectResult.getExecutionInfo().getQueryTrace();
System.out.printf("Trace id: %s\n\n", queryTrace.getTraceId());
System.out.printf("%-42s | %-12s | %-10s \n", "activity",
"timestamp", "source");
System.out.println("-------------------------------------------"

"--------------+------------");

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss.SSS");
for (QueryTrace.Event event : queryTrace.getEvents()) {
System.out.printf("%42s | %12s | %10s\n",
event.getDescription(),
dateFormat.format((event.getTimestamp())),
event.getSource());
}

row cache,key cache,counter cache
Consider your queries, and use the cache type that best fits your queries.
Consider the ratio of your heap size to your cache size, and do not allow the cache to overwhelm your heap.
Consider the size of your rows against the size of your keys. Typically keys will be much smaller than entire rows.

Another element related to tuning the memtables is memtable_flush_writers. This setting, which is 2 by default, indicates the number of threads used to write out the memtables when it becomes necessary. If your data directories are backed by SSD, you should increase this to the number of cores, without exceeding the maximum value of 8. If you have a very large heap, it can improve performance to set this count higher, as these threads are blocked during disk I/O.

commitlog flush方式设置成batch的时候，会block住write request,直到完成

When reading SSTable files from disk, Cassandra uses a buffer cache (also known as a buffer pool), to help reduce database file I/O.

If you’d like to test out using a different compaction strategy for a table, you don’t have to change it on the whole cluster in order to see how it works. Instead, you can create a test node running in write survey mode to see how the new compaction strategy will work.
To do this, add the following options to the cassandra-env.sh file for the test node:
JVM_OPTS="$JVM_OPTS -Dcassandra.write_survey=true"
JVM_OPTS="$JVM_OPTS -Djoin_ring=false"
Once the node is up, you can then access the org.apache.cassandra.db.ColumnFamilyStoreMBean for the table under org.apache.cassandra.db > Tables in order to configure the compaction strategy. Set the CompactionStrategyClass attribute to the fully qualified compaction strategy class name.
After this configuration change, add the node to the ring via nodetool join so that it can start receiving writes. Writes to the test node place a minimal additional load on the cluster and do not count toward consistency levels. You can now monitor the performance of writes to the node using nodetool tablestats and tablehistograms.
You can test the impact of new compaction strategy on reads by stopping the node, bringing it up as a standalone machine, and then testing read performance on the node.
Write survey mode is also useful for testing out other configuration changes or even a new version of Cassandra.

The concurrent_reads setting determines how many simultaneous read requests the node can service. This defaults to 32, but should be set to the number of drives used for data storage × 16. This is because when your data sets are larger than available memory, the read operation is I/O bound.

It is not recommended to set the heap larger than 8 GB if you are using the Concurrent Mark Sweep (CMS) garbage collector, as heap sizes larger than this value tend to lead to longer GC pauses.

能否比较出读内存，与读磁盘的latency