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

Fix for: mWeb/Chrome - Payment - The keyboard overlaps the "Make default payment method" button #14725

Merged
merged 15 commits into from
Feb 9, 2023

Conversation

Ollyws
Copy link
Contributor

@Ollyws Ollyws commented Feb 1, 2023

Details

Fixed Issues

$ #14003
PROPOSAL: #14003 (comment)

Tests

  1. Go to Settings -> Payment
  2. Tap on the bank account that doesn't have the "default" label
  3. Tap on "Make default payment method" button
  4. Ensure the keyboard does not overlap the "Make default payment method" button.
  • Verify that no errors appear in the JS console

Offline tests

  1. Go to Settings -> Payment
  2. Tap on the bank account that doesn't have the "default" label
  3. Tap on "Make default payment method" button
  4. Ensure the keyboard does not overlap the "Make default payment method" button.

QA Steps

  1. Go to Settings -> Payment
  2. Tap on the bank account that doesn't have the "default" label
  3. Tap on "Make default payment method" button
  4. Ensure the keyboard does not overlap the "Make default payment method" button.
  • 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 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 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 followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
  • I verified that if a function's arguments changed that all usages have also been updated correctly
  • If a new component is created I verified that:
    • A similar component doesn't exist in the codebase
    • All props are defined accurately and each prop has a /** comment above it */
    • The file is named correctly
    • The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
    • The only data being stored in the state is data necessary for rendering and nothing else
    • For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
    • Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
    • All JSX used for rendering exists in the render method
    • The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
MacOS_Chrome.mp4
Mobile Web - Chrome
Android_Chrome.mp4
Mobile Web - Safari
iOS_Safari.mp4
Desktop
MacOS_Desktop.mp4
iOS
iOS_Native.mp4
Android
Android_Native.mp4

@Ollyws Ollyws requested a review from a team as a code owner February 1, 2023 08:48
@melvin-bot melvin-bot bot requested review from aimane-chnaif and jasperhuangg and removed request for a team February 1, 2023 08:48
@melvin-bot
Copy link

melvin-bot bot commented Feb 1, 2023

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

KeyboardSpacer.displayName = 'KeyboardSpacer';

export default withWindowDimensions(KeyboardSpacer);
export default KeyboardSpacer;
Copy link
Contributor

Choose a reason for hiding this comment

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

We can remove this file.

Copy link
Contributor

Choose a reason for hiding this comment

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

@Ollyws Now that this file is removed, we may need to change comment in index.js
On non native platforms we do not need to implement a keyboard spacer, so we return a null component.
to something like this:
On non iOS platforms we do not need to implement a keyboard spacer, so we return a null component.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@aimane-chnaif All done.

@@ -478,6 +480,7 @@ class BasePaymentsPage extends React.Component {
)}
</Popover>
<PasswordPopover
disableCoverScreen
Copy link
Contributor

Choose a reason for hiding this comment

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

let's add comment what this prop is for

@aimane-chnaif
Copy link
Contributor

@Ollyws Also, please pull from latest main

@Ollyws
Copy link
Contributor Author

Ollyws commented Feb 1, 2023

@aimane-chnaif All done. Thanks!

@aimane-chnaif
Copy link
Contributor

@Ollyws I have feedback so far:

  • Android chrome and android native works as expected.

  • iOS safari:

msafari.mp4

Entire payments page shifts up and then down.
and then down is what this PR fixed.
Not sure if it's possible to make it perfect so prevent payments page move.

  • iOS native:

I see some more padding between button and keyboard than before:

before:
before-ios

after:
ios

Copy link
Contributor

@jasperhuangg jasperhuangg left a comment

Choose a reason for hiding this comment

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

Mostly looks good! Just a few minor comments, and please address @aimane-chnaif's feedback

src/components/KeyboardSpacer/index.android.js Outdated Show resolved Hide resolved
src/components/withViewportOffsetTop.js Show resolved Hide resolved
@Ollyws
Copy link
Contributor Author

Ollyws commented Feb 1, 2023

@aimane-chnaif Thanks for the feedback. I can't seem to replicate the iOS native padding issue, Is this occuring on the emulator or a real device?

Screenshot

screeny

@aimane-chnaif
Copy link
Contributor

@aimane-chnaif Thanks for the feedback. I can't seem to replicate the iOS native padding issue, Is this occuring on the emulator or a real device?

Screenshot

emulator. did you compare with production version?

@Ollyws
Copy link
Contributor Author

Ollyws commented Feb 2, 2023

@aimane-chnaif Ah yes I see. We could update the value of CONST.IOS_KEYBOARD_SPACE_OFFSET to compensate, a value of -55 fixes the issue for me.

and then down is what this PR fixed.
Not sure if it's possible to make it perfect so prevent payments page move.

Could you clarify what you meant here? I didn't quite understand. Thanks.

@aimane-chnaif
Copy link
Contributor

Could you clarify what you meant here? I didn't quite understand. Thanks.

glitch.mov

@Ollyws you see page glitches in this video?

@Ollyws
Copy link
Contributor Author

Ollyws commented Feb 2, 2023

@aimane-chnaif Yes but did you mean you think it's unfixable? In that case what would be the best course of action?

@aimane-chnaif
Copy link
Contributor

@aimane-chnaif Yes but did you mean you think it's unfixable? In that case what would be the best course of action?

That never happens on native app. So it's ideal if we could fix it to be like native app.
That glitch also happens on Report header when focus on composer on mSafari.

@Ollyws
Copy link
Contributor Author

Ollyws commented Feb 2, 2023

@aimane-chnaif It would be ideal. However, on production the behaviour on Safari is slightly different to Native in that it pushes the entire screen up when they keyboard opens. Obviously we are now offsetting this using viewportOffsetTop which is causing the issue.
I will see what I can do to make it smoother.

@Ollyws
Copy link
Contributor Author

Ollyws commented Feb 2, 2023

@aimane-chnaif After some research it seems like it's an issue with the fact it's a child of ModalStackNavigator. If I put the exact same content in ReportScreen for example the issue doesn't exist to the same extent.
Perhaps it would be better to do something like Diff2 from my proposal. That retains the original behaviour of the view sliding up on Safari.

@aimane-chnaif
Copy link
Contributor

@aimane-chnaif After some research it seems like it's an issue with the fact it's a child of ModalStackNavigator. If I put the exact same content in ReportScreen for example the issue doesn't exist to the same extent. Perhaps it would be better to do something like Diff2 from my proposal. That retains the original behaviour of the view sliding up on Safari.

@jasperhuangg what do you think about this?

@jasperhuangg
Copy link
Contributor

jasperhuangg commented Feb 2, 2023

@aimane-chnaif @Ollyws I agree that we should try diff 2

@aimane-chnaif
Copy link
Contributor

@aimane-chnaif @Ollyws I agree that we should try diff 2

@Ollyws let's update code accordingly

@aimane-chnaif
Copy link
Contributor

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 / Chrome
    • iOS / native
    • iOS / 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 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 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 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 a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
web.mov
Mobile Web - Chrome
mchrome.mp4
Mobile Web - Safari
msafari.mp4
Desktop
desktop.mov
iOS
ios.mp4
Android
android.mp4

aimane-chnaif
aimane-chnaif previously approved these changes Feb 3, 2023
Copy link
Contributor

@aimane-chnaif aimane-chnaif left a comment

Choose a reason for hiding this comment

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

Latest code changes look good to me and tests work as expected, except 3 issues I mentioned above.

@jasperhuangg
Copy link
Contributor

Issues to note (out of scope):

mchrome.mp4

  • iOS safari - weird scroll behavior - button keeps moving, bottom padding above keyboard while scrolling (this is happening on staging)

scroll.mp4
ios.mp4

@Ollyws is there really no way to fix these issues before merging this PR? Like disabling scroll while the modal is open?

@Ollyws
Copy link
Contributor Author

Ollyws commented Feb 3, 2023

@jasperhuangg I don't think so unfortunately. It's similar to this issue, which they decided was a seperate issue when merging their PR.

@jasperhuangg
Copy link
Contributor

@Ollyws Looks like this is already a known issue and could potentially be fixed by solving that other issue later on. That makes sense.

Thanks @aimane-chnaif for clarifying. Let's also update #14718 to include the fact that this issue will crop up in the make default payment method modal once this PR is merged/deployed.

@@ -77,6 +77,7 @@ class BaseModal extends PureComponent {
},
this.props.popoverAnchorPosition,
this.props.containerStyle,
this.props.extraModalStyles,
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't really like the name extraModalStyles, can we come up with something a bit more descriptive?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure, any suggestions?

Copy link
Contributor Author

@Ollyws Ollyws Feb 3, 2023

Choose a reason for hiding this comment

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

@jasperhuangg customModalStyles?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@aimane-chnaif Any ideas?

Copy link
Contributor

Choose a reason for hiding this comment

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

Since this is already Modal, no need to label Modal I think.
So maybe something like customContainerStyle?
All yours @jasperhuangg

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for your patience guys have been out sick.

I like outerStyle? And I think we can rename containerStyle to innerContainerStyle since the container those styles are being applied to lives inside the modal.

Copy link
Contributor

Choose a reason for hiding this comment

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

@jasperhuangg sorry, hope you'd feel better now.
Good suggestion. I agree with that approach. But how about contentContainerStyle since this name is more common and already used in other places?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@jasperhuangg No worries, hope you're feeling better.
outerStyle and innerContainerStyle make sense to me, just give me the word and I'll implement these changes.

Copy link
Contributor

Choose a reason for hiding this comment

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

@jasperhuangg sorry bump, can you please confirm the preferred name soon? Hope delay for waiting this won't affect timeline

Copy link
Contributor

Choose a reason for hiding this comment

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

@Ollyws yeah go ahead! Sorry for the delay

@aimane-chnaif
Copy link
Contributor

Thanks @aimane-chnaif for clarifying. Let's also update #14718 to include the fact that this issue will crop up in the make default payment method modal once this PR is merged/deployed.

Sure. That issue is locked so can you please do that in behalf?

@jasperhuangg
Copy link
Contributor

@aimane-chnaif will do once this is deployed!

@aimane-chnaif
Copy link
Contributor

@jasperhuangg gentle bump!

@aimane-chnaif
Copy link
Contributor

@Ollyws please fix conflicts

@Ollyws
Copy link
Contributor Author

Ollyws commented Feb 8, 2023

@aimane-chnaif All fixed.

@aimane-chnaif
Copy link
Contributor

Once we have better naming of extraModalStyles from @jasperhuangg, all good

@jasperhuangg
Copy link
Contributor

Just replied to @Ollyws's comment here, I'll be back to approve and merge once those changes are made, thanks for your patience guys

@aimane-chnaif
Copy link
Contributor

Just replied to @Ollyws's comment here, I'll be back to approve and merge once those changes are made, thanks for your patience guys

@jasperhuangg just to confirm again: you're suggesting outerStyle and innerContainerStyle right?

@Ollyws
Copy link
Contributor Author

Ollyws commented Feb 9, 2023

@aimane-chnaif I believe he was. Names updated.

@jasperhuangg jasperhuangg merged commit 5f2e188 into Expensify:main Feb 9, 2023
@OSBotify
Copy link
Contributor

OSBotify commented Feb 9, 2023

✋ 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
Copy link
Contributor

github-actions bot commented Feb 9, 2023

Performance Comparison Report 📊

Significant Changes To Duration

There are no entries

Meaningless Changes To Duration

Show entries
Name Duration
App start TTI 681.469 ms → 692.522 ms (+11.054 ms, +1.6%)
Open Search Page TTI 593.749 ms → 602.398 ms (+8.649 ms, +1.5%)
App start runJsBundle 182.719 ms → 186.100 ms (+3.381 ms, +1.9%)
App start regularAppStart 0.015 ms → 0.014 ms (-0.000 ms, -1.4%)
App start nativeLaunch 21.781 ms → 21.484 ms (-0.297 ms, -1.4%)
Show details
Name Duration
App start TTI Baseline
Mean: 681.469 ms
Stdev: 22.193 ms (3.3%)
Runs: 640.0146980006248 644.8050539996475 646.540867999196 653.9039530009031 655.2155729997903 664.0539430007339 664.8490919992328 666.5376370009035 668.1567550003529 669.786591000855 670.4090819992125 674.7253440003842 676.2403870001435 677.4681180007756 677.6156619992107 678.3488500006497 679.5400799997151 680.9274480007589 681.3264479991049 682.8535229992121 683.7814809996635 687.5846699997783 694.486370999366 699.1331430003047 699.6202339995652 700.5771980006248 705.1484890002757 705.3473749998957 707.4460300002247 715.6748929992318 716.2742139995098 738.6114959996194

Current
Mean: 692.522 ms
Stdev: 18.553 ms (2.7%)
Runs: 661.0009589996189 662.6149429995567 669.232603000477 671.2119679991156 675.7029320001602 677.0020090006292 677.4979420006275 678.1736280005425 680.1424359995872 680.3455320000648 685.2005259990692 686.9869100004435 688.9476810004562 689.2919399999082 689.3095110002905 689.4104260001332 690.9413009993732 693.1534000001848 696.365938000381 699.4093120004982 701.5041649993509 704.9992229994386 705.7943719998002 706.0054420009255 706.6155670005828 706.6975689996034 714.398683000356 719.6134300008416 721.0788119994104 747.0232749991119
Open Search Page TTI Baseline
Mean: 593.749 ms
Stdev: 13.986 ms (2.4%)
Runs: 562.7243239991367 570.8836269993335 575.8885500002652 577.9945479985327 578.1382240001112 579.9330649990588 580.4775399994105 583.9457200001925 586.6171070002019 586.9087729994208 587.1514490004629 587.257203001529 587.9030360002071 587.9241130016744 588.7686769999564 591.3922119997442 595.7001960016787 596.2504879999906 596.4305419996381 598.6895349994302 600.5726320017129 601.4579269997776 601.5572509989142 602.2965909987688 605.171631000936 606.153075998649 606.5254310015589 607.8964039999992 609.9600019995123 611.3091230001301 622.6528730001301 623.4506839998066

Current
Mean: 602.398 ms
Stdev: 17.986 ms (3.0%)
Runs: 565.7498779986054 576.1854659989476 576.4867360014468 581.9010819997638 583.7939860001206 584.92195700109 589.0566819999367 590.7589519992471 591.1314700003713 591.7273360006511 591.8360190000385 593.8799649998546 593.9338380005211 595.581828000024 595.6242680009454 599.1278080008924 599.6873380001634 602.4141039997339 605.793171999976 606.2595630008727 606.6886400002986 607.8547780010849 608.988445000723 614.734822999686 615.1170660015196 615.7586669996381 615.9583339989185 618.875406999141 620.4314379990101 621.4104410000145 628.9676509983838 641.1293540000916 647.3818370010704
App start runJsBundle Baseline
Mean: 182.719 ms
Stdev: 15.023 ms (8.2%)
Runs: 153 160 161 164 165 170 170 172 174 175 176 178 180 180 181 181 182 183 183 183 184 187 189 190 194 197 197 199 203 204 212 220

Current
Mean: 186.100 ms
Stdev: 13.546 ms (7.3%)
Runs: 161 166 166 168 174 174 175 176 178 180 180 182 182 182 183 184 186 187 187 190 190 195 199 200 201 202 206 208 209 212
App start regularAppStart Baseline
Mean: 0.015 ms
Stdev: 0.001 ms (5.1%)
Runs: 0.01302100159227848 0.013102000579237938 0.013386998325586319 0.013671999797224998 0.0138349998742342 0.013875000178813934 0.013956999406218529 0.013956999406218529 0.013996999710798264 0.0139979999512434 0.014039000496268272 0.01411999948322773 0.014364000409841537 0.01440499909222126 0.014485999941825867 0.014526000246405602 0.014606999233365059 0.014607999473810196 0.014688998460769653 0.01469000056385994 0.014729000627994537 0.014729999005794525 0.014851998537778854 0.014852000400424004 0.014932999387383461 0.015056001022458076 0.015421999618411064 0.015461999922990799 0.015543999150395393 0.015625 0.015786999836564064 0.01615299843251705

Current
Mean: 0.014 ms
Stdev: 0.001 ms (5.0%)
Runs: 0.013305999338626862 0.013426998630166054 0.013631001114845276 0.013631001114845276 0.013670999556779861 0.013753999024629593 0.013793999329209328 0.013794001191854477 0.013833999633789062 0.0138349998742342 0.0138349998742342 0.013875998556613922 0.013957001268863678 0.013996999710798264 0.013996999710798264 0.014038000255823135 0.014119001105427742 0.014201000332832336 0.014201000332832336 0.014281999319791794 0.014322999864816666 0.01440499909222126 0.014444999396800995 0.014852000400424004 0.015217998996376991 0.01521800085902214 0.015298999845981598 0.015420999377965927 0.015421001240611076 0.01574699953198433 0.015991000458598137
App start nativeLaunch Baseline
Mean: 21.781 ms
Stdev: 2.619 ms (12.0%)
Runs: 18 18 19 19 19 19 19 19 19 20 20 21 21 21 21 21 21 22 22 22 23 23 23 24 24 24 25 25 25 25 27 28

Current
Mean: 21.484 ms
Stdev: 2.614 ms (12.2%)
Runs: 18 18 18 19 19 19 19 19 20 20 20 20 20 20 21 21 21 21 22 22 22 23 23 23 23 24 25 26 26 27 27

@OSBotify
Copy link
Contributor

🚀 Deployed to staging by https://github.com/jasperhuangg in version: 1.2.69-0 🚀

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

@OSBotify
Copy link
Contributor

🚀 Deployed to production by https://github.com/mountiny in version: 1.2.69-2 🚀

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

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.

4 participants