Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow Welcome Message on Room Creation #29541

Merged
merged 3 commits into from
Oct 13, 2023
Merged

Allow Welcome Message on Room Creation #29541

merged 3 commits into from
Oct 13, 2023

Conversation

mountiny
Copy link
Contributor

This is basically a copy of #27836 with one change that is behavior="padding" for the keyboardAvoidignView to fix this issue #28950

Details

You'll get the "too many auth calls" alert for this, due to the welcome message being added as an NVP. @jasperhuangg let me know how you want to handle this, whether we just add it to the list of exceptions, or if we need to somehow roll it into Auth. For local testing, please add the command to the list of exceptions otherwise you'll get an error when you try to create the room and won't be able to test. Staging server should be fine.

This also covers a bit of a refactor for the room creation page, using push-to-page selectors. Since we didn't really have a generic one of these before for use in forms, I created one. It takes a list of items (with values and labels) and will make them into one of these pop up selection modals. Handles display of the selected item, and offers an option for an initial placeholder (though you can't get back to it afterwards, which isn't an issue here since selections are required for all).

I'm not 100% confident on the name of the new component, so any suggestions are welcome.

Lastly, I also had to update the NewChatSelectorPage to include withOnyx because otherwise it wasn't actually able to access the betas prop, but now it works.

Fixed Issues

$ https://github.com/Expensify/Expensify/issues/316189
$ #28950
PROPOSAL: N/A

Tests

  • Same as QA
  • Verify that no errors appear in the JS console

Offline tests

  • Same as QA (and confirm that the room is correctly created with no errors once you return online)

QA Steps

  1. Log into an account that has at least two workspaces (or create them)
  2. Open the FAB
  3. Click "Send message"
  4. Toggle over to "Room"
  5. Enter a room name
  6. Ensure that an error is shown if you do NOT enter a room name
  7. Enter a welcome message
  8. Ensure that the form shows an error if you do not select a workspace (and try to create room)
  9. Select a workspace - ensure that all possible workspaces are in the list and selectable
  10. Ensure that your selection persists in the main form
  11. If you are an admin of a workspace, ensure that the "Who can post" selector appears once you have chosen that workspace.
  12. Test that all options for "Who can post" are selectable and persist to the main form
  13. Test that all options for "Visibility" are selectable and persist to the main form
  14. Submit the form and ensure that the room is created as expected with the correct qualities.
  15. Log in to another account and navigate to that room (assuming it is public).
  16. Ensure you are sent the welcome message you entered in step 6.
  • Verify that no errors appear in the JS console

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android / native
    • Android / Chrome
    • iOS / native
    • iOS / Safari
    • MacOS / Chrome / Safari
    • MacOS / Desktop
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I followed proper code patterns (see Reviewing the code)
    • I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
    • I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
      • If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:
    • I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
    • I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • I verified the JSDocs style guidelines (in STYLE.md) were followed
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
  • I verified that if a function's arguments changed that all usages have also been updated correctly
  • If a new component is created I verified that:
    • A similar component doesn't exist in the codebase
    • All props are defined accurately and each prop has a /** comment above it */
    • The file is named correctly
    • The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
    • The only data being stored in the state is data necessary for rendering and nothing else
    • 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
    • For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
    • Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
    • All JSX used for rendering exists in the render method
    • The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If 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 a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
  • I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Uploading web.mp4…

Mobile Web - Chrome

I can't get this to login, on main either, so I'm forgoing this. Some combo of Bali + ngrok + cloudflare + etc. etc.. If you could double test this it would be appreciated!

Mobile Web - Safari
mWebSafari.mp4
Desktop
desktop.mp4
iOS
ios.mp4
Android

This is coming! Taking forever to build so I wanted to get a head start.

@mountiny mountiny requested a review from a team as a code owner October 13, 2023 09:39
@melvin-bot melvin-bot bot requested review from eVoloshchak and removed request for a team October 13, 2023 09:39
@melvin-bot
Copy link

melvin-bot bot commented Oct 13, 2023

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

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Oct 13, 2023

Deploying with  Cloudflare Pages  Cloudflare Pages

Latest commit: c56634a
Status: ✅  Deploy successful!
Preview URL: https://82f54dd7.helpdot.pages.dev
Branch Preview URL: https://vit-27836followup.helpdot.pages.dev

View logs

@eVoloshchak
Copy link
Contributor

eVoloshchak commented Oct 13, 2023

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 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 any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If 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 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

Web
Screen.Recording.2023-10-13.at.14.52.00.mov
Mobile Web - Chrome
screen-20231013-150756.mp4
Mobile Web - Safari
RPReplay_Final1697201811.MP4
Desktop
Screen.Recording.2023-10-13.at.15.12.41.mov
iOS
RPReplay_Final1697201677.MP4
Android
screen-20231013-150549.mp4

@mountiny
Copy link
Contributor Author

@eVoloshchak
Copy link
Contributor

@mountiny, there's another issue on iOS (which was also present in the previous PR, but nobody except me could reproduce it so we weren't sure if it was a problem with my specific setup), but I can see it's also present in your video
The screen flashes every time you select an item with the new picker (workspace/who can post/visibility)

RPReplay_Final1697195440.MP4

Should we fix this one here too?

@s77rt
Copy link
Contributor

s77rt commented Oct 13, 2023

@mountiny This is missing the actual fix 😅 The behavior is still set to height. It should be padding. The attached video have the keyboard flashing once, it should not flash at all.

@eVoloshchak
Copy link
Contributor

eVoloshchak commented Oct 13, 2023

Confirmed the problem doesn't exist after setting behavior="padding", thank you @s77rt
While we're at it, we can also replace an inline style with the one from styles

image

@mountiny
Copy link
Contributor Author

wtf
image

did not save it 🤦

@mountiny
Copy link
Contributor Author

Pushed!

@mountiny
Copy link
Contributor Author

Should we fix this one here too?

Thanks for noticing, I think that this is not blocker, I am not sure how to fix this right now and cant debug it so unless you know from top of you head how to fix this, I think we should move ahead. It might be the combination of Form, KeyboardAvoidingView and TabNavigator

@eVoloshchak
Copy link
Contributor

I think that this is not blocker, I am not sure how to fix this right now and cant debug it so unless you know from top of you head how to fix this, I think we should move ahead

This one was also resolved by behavior="padding", so we're all good now

@melvin-bot melvin-bot bot requested a review from Li357 October 13, 2023 13:19
@melvin-bot
Copy link

melvin-bot bot commented Oct 13, 2023

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

@melvin-bot
Copy link

melvin-bot bot commented Oct 13, 2023

🎯 @eVoloshchak, thanks for reviewing and testing this PR! 🎉

An E/App issue has been created to issue payment here: #29564.

Copy link
Contributor

@Julesssss Julesssss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Julesssss Julesssss merged commit dc1ff84 into main Oct 13, 2023
@Julesssss Julesssss deleted the vit-27836followup branch October 13, 2023 14:33
@OSBotify
Copy link
Contributor

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

@github-actions github-actions bot added the DeployBlockerCash This issue or pull request should block deployment label Oct 13, 2023
@github-actions
Copy link
Contributor

Performance Comparison Report 📊

Significant Changes To Duration

Name Duration
App start TTI 1267.948 ms → 1718.785 ms (+450.837 ms, +35.6%) 🔴🔴
App start runJsBundle 868.489 ms → 1214.022 ms (+345.533 ms, +39.8%) 🔴🔴
Show details
Name Duration
App start TTI Baseline
Mean: 1267.948 ms
Stdev: 39.801 ms (3.1%)
Runs: 1163.5416109999642 1176.3818620000966 1183.0213520000689 1188.7254800000228 1203.3431379999965 1203.8975069997832 1211.11868399987 1216.1343200001866 1217.6275169998407 1218.3042139997706 1219.6364750000648 1221.210907000117 1222.9632359999232 1224.8055199999362 1228.9040939998813 1230.3028890001588 1231.2781460001133 1236.7028180002235 1237.9030519998632 1238.6304589998908 1239.193163999822 1239.4034380000085 1239.434710000176 1241.3663900000975 1241.6930599999614 1244.1601220001467 1245.6231820001267 1246.189652999863 1246.4115729997866 1250.710386000108 1251.3369930000044 1256.7280370001681 1259.9232410001568 1260.2946810000576 1260.7920860000886 1260.9599449997768 1261.1556299999356 1261.9650329998694 1262.4666459998116 1262.7998029999435 1264.1910129999742 1265.8277719998732 1267.408818999771 1268.192371999845 1269.2521370002069 1269.8473640000448 1271.5069409999996 1273.4145800000988 1274.0689329998568 1274.1958969999105 1274.5806680000387 1274.7447319999337 1275.7296790000983 1275.965631000232 1277.4578940002248 1278.2145119998604 1279.0450960001908 1280.9054149999283 1283.2436609999277 1286.5264189997688 1287.1147529999726 1288.2429189998657 1288.53862700006 1288.8798380000517 1289.34080799995 1289.7209919998422 1293.3626350001432 1294.8241639998741 1294.933633999899 1295.199872000143 1295.9809519997798 1298.3819200000726 1301.2598159997724 1301.4748129998334 1303.3419099999592 1305.2848649998195 1312.126120999921 1315.6501429998316 1317.0291670002043 1323.9488570000976 1324.4228469999507 1326.472819000017 1326.5904640001245 1326.8685170002282 1327.9696360002272 1331.243654999882 1332.432949999813 1333.3621390000917 1341.842465000227 1368.1209869999439

Current
Mean: 1718.785 ms
Stdev: 71.106 ms (4.1%)
Runs: 1529.5853510000743 1556.3652209998108 1583.954206999857 1589.331362000201 1590.7251909999177 1594.6313350000419 1607.116601999849 1609.6444430002011 1639.1015039999038 1641.4013370000757 1645.9337670002133 1646.911450999789 1647.8272680002265 1651.7100289999507 1654.1062719998881 1654.6293999999762 1656.116162000224 1656.2009069998749 1660.0345339998603 1662.473224000074 1662.585872999858 1664.3251660000533 1667.162932000123 1677.946547999978 1682.1804700000212 1683.599134999793 1685.0877869999968 1686.8653139998205 1687.0333409998566 1687.129705999978 1687.4794319998473 1688.6890719998628 1689.2798290001228 1689.2814939999953 1691.0971869998612 1692.4019309999421 1693.5008450001478 1694.7702970001847 1696.986798999831 1697.027120999992 1701.2022239998914 1702.4352879999205 1707.8898310000077 1713.3755629998632 1714.919222000055 1715.3698370000347 1717.1603359999135 1717.8899059998803 1721.5591219998896 1722.9293659999967 1724.7928369999863 1733.8093650001101 1734.2634620000608 1738.375642000232 1739.722523999866 1741.7556619998068 1745.1299700001255 1749.9773200000636 1751.0065520000644 1754.917890000157 1755.3733729999512 1757.5992510002106 1758.5209240000695 1760.7255259999074 1761.025125999935 1765.7755640000105 1766.9549850001931 1767.5823340001516 1768.838752000127 1769.5358710000291 1771.945408000145 1773.3755649998784 1782.248978999909 1782.730285000056 1787.209673000034 1787.533768999856 1787.906905000098 1797.125887000002 1798.6406000000425 1798.712797000073 1803.6620539999567 1803.9570390000008 1811.0851050000638 1822.982166999951 1829.220608000178 1829.4495029998943 1839.5124679999426 1840.333904999774 1847.2180940001272 1870.0487089999951 1881.9067099997774
App start runJsBundle Baseline
Mean: 868.489 ms
Stdev: 31.848 ms (3.7%)
Runs: 794 795 804 806 807 809 814 820 821 823 831 833 834 834 836 837 839 845 847 849 849 849 850 851 852 853 853 857 859 859 859 860 860 861 862 863 863 863 864 865 865 866 868 873 874 875 876 876 876 876 877 877 878 879 879 879 880 880 884 884 884 884 886 886 887 888 888 889 894 894 895 895 898 898 898 902 905 907 907 907 908 911 914 923 925 930 936 936

Current
Mean: 1214.022 ms
Stdev: 49.286 ms (4.1%)
Runs: 1113 1125 1128 1128 1130 1133 1138 1138 1139 1142 1144 1157 1165 1166 1167 1167 1168 1169 1169 1170 1170 1172 1174 1175 1179 1181 1183 1186 1186 1189 1190 1191 1192 1196 1196 1197 1199 1201 1201 1202 1204 1207 1208 1211 1211 1212 1213 1214 1215 1216 1216 1220 1220 1222 1226 1227 1227 1230 1233 1234 1236 1238 1240 1240 1240 1244 1248 1252 1255 1256 1258 1258 1261 1261 1263 1263 1272 1276 1276 1276 1276 1277 1278 1278 1279 1284 1295 1298 1302 1304 1309 1315

Meaningless Changes To Duration

Show entries
Name Duration
Open Search Page TTI 631.861 ms → 637.786 ms (+5.925 ms, +0.9%)
App start nativeLaunch 22.348 ms → 23.374 ms (+1.026 ms, +4.6%)
App start regularAppStart 0.015 ms → 0.016 ms (+0.002 ms, +10.4%)
Show details
Name Duration
Open Search Page TTI Baseline
Mean: 631.861 ms
Stdev: 23.540 ms (3.7%)
Runs: 599.3004959998652 599.3928640000522 600.2230220003985 601.7212319998071 602.6425369996578 606.7680669999681 606.8471679999493 607.2635500002652 607.5238040001132 607.7919519999996 609.7798669999465 611.7017009998672 612.1038000001572 612.2122400002554 614.07889899984 614.2724609998986 614.8632809999399 615.090576000046 615.3350829998963 615.3642980000004 615.4101159996353 615.7736820001155 615.8470459999517 616.1220700000413 616.2189529999159 616.2714440003037 616.4451500000432 616.5313719999976 617.5250249998644 617.5373539999127 617.593586999923 618.1331790001132 618.3413500003517 618.3881019996479 618.9519050000235 619.2330729998648 619.2614339999855 619.7801109999418 619.9970300002024 620.084717000369 620.7642830000259 623.3600260000676 623.8354090000503 623.9446209999733 624.2775880000554 624.5806479998864 624.7447920003906 624.828409999609 627.6151940003037 627.6289060004056 628.1430259998888 630.5669759996235 631.9632979999296 632.3359380001202 632.9182939999737 633.7453609998338 633.7727459999733 635.9656170001253 637.8211669996381 638.1111250002868 640.3885909998789 640.8527019997127 641.9376219999976 642.2149260002188 642.9324139999226 643.8629160001874 644.3736580000259 645.5463870000094 648.3790289997123 648.4048669999465 648.581828000024 650.3417159998789 650.5096439998597 651.2333590001799 652.0180660001934 654.9744880003855 658.0434169997461 659.0048420000821 669.9796139998361 673.3116460000165 675.8281660000794 676.4741209996864 677.8052170001902 679.9667970002629 682.2554120002314 694.4852289999835 699.9051109999418 701.4871830004267

Current
Mean: 637.786 ms
Stdev: 25.909 ms (4.1%)
Runs: 592.0843100002967 592.128866000101 592.5212000003085 600.6463219998404 601.0555020002648 603.4637050000019 606.9278560001403 607.8307699998841 608.3987630000338 608.9189460002817 610.3039959999733 610.5450440002605 610.778686999809 612.9953209999949 614.2636319999583 615.7979729999788 616.3359779999591 616.675414999947 616.7647700002417 616.9783939998597 617.869059999939 618.1529140002094 618.5814210004173 619.949585000053 621.2371419998817 622.5858970000409 622.7660320000723 624.0480559999123 624.4043380003422 624.4623220004141 624.5584720000625 625.6115730004385 626.3909100000747 626.7112630000338 626.7504070000723 627.1386719997972 627.3361010001972 628.203777000308 628.2723799999803 630.8903410001658 631.3007820001803 632.2562259999104 632.3601480000652 632.5084640001878 633.0941570000723 633.2297370000742 633.7400310002267 634.2174889999442 635.0906989998184 635.199951000046 635.868286000099 636.3511560000479 639.4884440000169 640.3650720003061 640.4770099995658 640.4962160000578 641.0562750003301 641.8352870000526 643.2403560001403 643.2541099996306 643.8455810002051 644.5227049998939 649.8972180001438 650.0452469997108 650.1521000000648 650.7217620001175 652.1461999998428 652.6907959999517 652.8440350000747 657.6036380003206 658.1647540000267 658.3260900001042 659.6602380000986 665.863404000178 666.2254239995964 666.2906499998644 667.2035320000723 667.372315000277 674.3170579997823 675.5258790003136 683.804770000279 685.0214030002244 686.8880210001953 688.6513670003042 690.4801429999061 692.1749680000357 693.7040610001422 700.6379390000366 701.4188639996573
App start nativeLaunch Baseline
Mean: 22.348 ms
Stdev: 3.673 ms (16.4%)
Runs: 18 18 18 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 21 21 21 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 22 22 23 23 23 23 23 24 25 25 25 25 26 27 27 27 27 28 28 28 28 28 29 29 29 29 30 31 31 32 32

Current
Mean: 23.374 ms
Stdev: 3.314 ms (14.2%)
Runs: 19 19 19 19 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 21 21 21 21 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 23 23 23 23 23 23 24 24 24 24 24 24 24 24 24 24 25 25 25 25 26 26 26 26 26 26 26 26 26 26 27 27 27 27 28 28 28 31 31 31 31 31 32 32
App start regularAppStart Baseline
Mean: 0.015 ms
Stdev: 0.001 ms (6.7%)
Runs: 0.012817000038921833 0.013305999804288149 0.013346000108867884 0.013427999801933765 0.01355000026524067 0.013630999717861414 0.013671000022441149 0.013671999797224998 0.013712000101804733 0.013712999876588583 0.013793999794870615 0.013794000260531902 0.013916000258177519 0.013956000097095966 0.01399700017645955 0.014078999869525433 0.014078999869525433 0.014119000174105167 0.014160000253468752 0.014200999867171049 0.014240999706089497 0.014241999946534634 0.014241999946534634 0.014241999946534634 0.014322999864816666 0.0143630001693964 0.0143630001693964 0.0143630001693964 0.014444999862462282 0.014485000167042017 0.014527000021189451 0.014527000021189451 0.014527000021189451 0.014566999860107899 0.014607000164687634 0.014607000164687634 0.014607999939471483 0.014607999939471483 0.014607999939471483 0.01464799977838993 0.014649000018835068 0.014689000323414803 0.014689000323414803 0.014769999776035547 0.014810999855399132 0.014810999855399132 0.014811000321060419 0.014811000321060419 0.01485099969431758 0.0148930000141263 0.014932999853044748 0.01497400039806962 0.01501399977132678 0.015015000011771917 0.015015000011771917 0.015015000011771917 0.015055000316351652 0.01509599993005395 0.01509599993005395 0.01509599993005395 0.015137000009417534 0.015176999848335981 0.015217999927699566 0.015217999927699566 0.015217999927699566 0.015300000086426735 0.01554399961605668 0.015583999920636415 0.015625 0.015625 0.01570700015872717 0.01570700015872717 0.015746999997645617 0.015868999995291233 0.015949999913573265 0.015951000154018402 0.01607300015166402 0.0163569999858737 0.01643899967893958 0.016642000060528517 0.016764999832957983 0.016846000216901302 0.01733400020748377 0.017496999818831682 0.0176189998164773 0.01769999973475933

Current
Mean: 0.016 ms
Stdev: 0.001 ms (5.5%)
Runs: 0.014606999699026346 0.014770000241696835 0.014852000400424004 0.014934000093489885 0.01501399977132678 0.015055000316351652 0.015176999848335981 0.015217999927699566 0.015300000086426735 0.015300000086426735 0.015420999843627214 0.015461999922990799 0.015461999922990799 0.015503000002354383 0.015503000002354383 0.015503000002354383 0.015543000306934118 0.015583999920636415 0.015585000161081553 0.015625 0.015666000079363585 0.015666000079363585 0.015705999918282032 0.015746999997645617 0.015746999997645617 0.0157880000770092 0.01582799991592765 0.01582799991592765 0.015868999995291233 0.01587000023573637 0.015910000074654818 0.015950999688357115 0.01599099999293685 0.01599099999293685 0.016032000072300434 0.016032000072300434 0.01607199991121888 0.01607300015166402 0.016112999990582466 0.016112999990582466 0.016234999988228083 0.016276000067591667 0.016316999681293964 0.016316999681293964 0.01631700014695525 0.0163569999858737 0.0163569999858737 0.016397999599575996 0.016398000065237284 0.016480000223964453 0.0165200000628829 0.016600999981164932 0.016601999755948782 0.016642000060528517 0.016643000300973654 0.0166830001398921 0.0166830001398921 0.01672299997881055 0.016724000219255686 0.01680499967187643 0.016805000137537718 0.016805000137537718 0.016845999751240015 0.016845999751240015 0.016927000135183334 0.017048999667167664 0.017090000212192535 0.017090000212192535 0.017130000051110983 0.017130000051110983 0.017130000051110983 0.017130000051110983 0.017130999825894833 0.017171000130474567 0.01733400020748377 0.01733400020748377 0.017375000286847353 0.0174150001257658 0.017578000202775 0.01761800004169345 0.017659999895840883 0.017740000039339066 0.01786300027742982 0.017904000356793404 0.0179449999704957 0.0179449999704957 0.018106999807059765 0.01814799988642335 0.01814799988642335 0.018432999961078167 0.018432999961078167

@github-actions
Copy link
Contributor

@Expensify/mobile-deployers 📣 Please look into this performance regression as it's a deploy blocker.

@Julesssss Julesssss removed the DeployBlockerCash This issue or pull request should block deployment label Oct 13, 2023
@OSBotify
Copy link
Contributor

🚀 Deployed to staging by https://github.com/Julesssss in version: 1.3.84-0 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/francoisl in version: 1.3.84-10 🚀

platform result
🤖 android 🤖 skipped 🚫
🖥 desktop 🖥 skipped 🚫
🍎 iOS 🍎 skipped 🚫
🕸 web 🕸 skipped 🚫

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/francoisl in version: 1.3.84-10 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 failure ❌
🕸 web 🕸 success ✅

@OSBotify
Copy link
Contributor

🚀 Deployed to staging by https://github.com/Julesssss in version: 1.3.85-0 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/francoisl in version: 1.3.85-4 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 failure ❌
🕸 web 🕸 success ✅

@@ -1448,6 +1449,9 @@ function addPolicyReport(policyID, reportName, visibility, policyMembersAccountI

// The room might contain all policy members so notifying always should be opt-in only.
CONST.REPORT.NOTIFICATION_PREFERENCE.DAILY,
'',
'',
welcomeMessage,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coming from #29612

We didn't ensure that the special characters (like <) are HTML-escaped

<SelectionList
sections={[{data: sectionsData}]}
onSelectRow={onItemSelected}
initiallyFocusedOptionKey={currentValue}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong value was used here. It should be selectedItem.value
Later it caused Workspace selector doesn't highlight when selected

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants