App icon indicating copy to clipboard operation
App copied to clipboard

[$250] Input lag and deletion issue in "Greater than" and "Less than" fields

Open lanitochka17 opened this issue 1 year ago • 49 comments

If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!


Version Number: 9.0.56-3 Reproducible in staging?: Y Reproducible in production?: Y If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: Y If this was caught during regression testing, add the test name, ID and link from TestRail: N/A Email or phone of affected tester (no customers): [email protected] Issue reported by: Applause - Internal Team

Issue found when executing PR https://github.com/Expensify/App/pull/51202

Action Performed:

  1. Navigate to https://staging.new.expensify.com/
  2. Go to Search > Filter > Total
  3. In the Greater than field, try to type numbers quickly
  4. Enter a few numbers and then attempt to delete all of them by tapping and holding the backspace key

Expected Result:

When typing numbers quickly, the input should respond instantly, with no lag or delay. when holding down the backspace key, all characters should be deleted continuously without stopping until the field is empty

Actual Result:

Typing numbers quickly in the "Greater than" field causes noticeable input lag, with some characters being skipped. when holding down the backspace key to delete all characters, only a few are removed, and the deletion process stops, leaving some characters in the field.

Workaround:

Unknown

Platforms:

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

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

Screenshots/Videos

Add any screenshot/video evidence

https://github.com/user-attachments/assets/5cfb4712-efe1-483e-a616-f6db7c076300

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~021859064491105055020
  • Upwork Job ID: 1859064491105055020
  • Last Price Increase: 2024-11-20
  • Automatic offers:
    • rayane-djouah | Reviewer | 105000525
Issue OwnerCurrent Issue Owner: @Christinadobrzyn

lanitochka17 avatar Nov 01 '24 15:11 lanitochka17

Triggered auto assignment to @Christinadobrzyn (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.

melvin-bot[bot] avatar Nov 01 '24 15:11 melvin-bot[bot]

We think that this bug might be related to #wave-control

lanitochka17 avatar Nov 01 '24 15:11 lanitochka17

This can be a regression from the linked pr tagging @s77rt

FitseTLT avatar Nov 01 '24 15:11 FitseTLT

I'm not sure if it's a regression but I'm reverting that PR. We can re-test after the revert

s77rt avatar Nov 01 '24 15:11 s77rt

Sounds good - @s77rt can you please keep us updated if we should restest this. Thanks!

Christinadobrzyn avatar Nov 04 '24 03:11 Christinadobrzyn

@s77rt looks like https://github.com/Expensify/App/pull/51849 is merged, can you retest and let me know if this is resolved?

Christinadobrzyn avatar Nov 05 '24 05:11 Christinadobrzyn

@Christinadobrzyn It's not clear how to test the hybrid app. Let's wait for the PR to hit staging and ask applause to retest

s77rt avatar Nov 05 '24 07:11 s77rt

Sounds good - the PR is in staging so asking QA to test again - https://expensify.slack.com/archives/C9YU7BX5M/p1730873246313799

Christinadobrzyn avatar Nov 06 '24 06:11 Christinadobrzyn

Monitoring QA review

Christinadobrzyn avatar Nov 07 '24 07:11 Christinadobrzyn

bumping QA. https://expensify.slack.com/archives/C9YU7BX5M/p1731041562299329?thread_ts=1730873246.313799&cid=C9YU7BX5M

Christinadobrzyn avatar Nov 08 '24 04:11 Christinadobrzyn

Hi @s77rt Just a follow-up that QA reported this is still happening.

I think we decided that issues with Hybrid would need to be internal right now. Unless you have access to test HybridApp issues?

https://github.com/user-attachments/assets/83a610fa-e6f3-4631-8ea3-baffe25c22b1

https://github.com/user-attachments/assets/7ac7ae9b-7c81-45f0-a161-0cec2d45e1fa

Christinadobrzyn avatar Nov 11 '24 05:11 Christinadobrzyn

Right, this is Internal 👍

s77rt avatar Nov 11 '24 10:11 s77rt

Awesome thanks for confirming @s77rt I'll check in with the team about this

Christinadobrzyn avatar Nov 12 '24 05:11 Christinadobrzyn

Testing this, I can see the same thing happening in Safari.

Is this even a bug? I feel like this might not be worth fixing right now. @s77rt do you think this is important to fix? It doesn't seem like it.

https://github.com/user-attachments/assets/cf9ae045-29bd-42ff-a47c-6b3e3b0cf18f

Christinadobrzyn avatar Nov 13 '24 06:11 Christinadobrzyn

I'm not able to reproduce the bug in Safari. The bug on the hybrid is worth investigation at least

s77rt avatar Nov 13 '24 09:11 s77rt

Asking SWM if they might be able to investigate this. https://expensify.slack.com/archives/C04878MDF34/p1731651775392719

Christinadobrzyn avatar Nov 15 '24 06:11 Christinadobrzyn

@Christinadobrzyn this issue was created 2 weeks ago. Are we close to a solution? Let's make sure we're treating this as a top priority. Don't hesitate to create a thread in #expensify-open-source to align faster in real time. Thanks!

melvin-bot[bot] avatar Nov 15 '24 09:11 melvin-bot[bot]

SWM is going to check schedules this week to see who has bandwidth this week to check this out.

Christinadobrzyn avatar Nov 18 '24 03:11 Christinadobrzyn

Hi @Christinadobrzyn! Is it confirmed at this point that the issue is exclusive to HybridApp?

It seems like it is also reproducible on standalone NewDot app:

If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: Y

mateuuszzzzz avatar Nov 18 '24 14:11 mateuuszzzzz

Hi @Christinadobrzyn! Is it confirmed at this point that the issue is exclusive to HybridApp?

It seems like it is also reproducible on standalone NewDot app:

If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: Y

A colleague from our team confirmed that this issue is exclusive to HybridApp. We'll prioritize it tomorrow morning

mateuuszzzzz avatar Nov 18 '24 15:11 mateuuszzzzz

oh awesome! Thank you @mateuuszzzzz!

Christinadobrzyn avatar Nov 19 '24 04:11 Christinadobrzyn

Hi! I have an update. I updated branches to be up to date. It seems like on the latest main branches this bug is still reproducible on pure NewDot app.

I suspect something might cause this regression to reappear, especially since we couldn’t reproduce it on the pure NewDot app yesterday. Since this is no longer a HybridApp issue, we could address it externally, but also someone from SWM should have time to handle this 👍

mateuuszzzzz avatar Nov 19 '24 12:11 mateuuszzzzz

Job added to Upwork: https://www.upwork.com/jobs/~021859064491105055020

melvin-bot[bot] avatar Nov 20 '24 02:11 melvin-bot[bot]

Triggered auto assignment to Contributor-plus team member for initial proposal review - @rayane-djouah (External)

melvin-bot[bot] avatar Nov 20 '24 02:11 melvin-bot[bot]

Oh perfect! Thanks @mateuuszzzzz! Yes, let's move this external to free up your plate for other things.

@rayane-djouah please see the comment here in terms of a fix - not sure if we need to be extra observant of a regression for this.

Christinadobrzyn avatar Nov 20 '24 02:11 Christinadobrzyn

Hi! I am Adam from SWM, an expert agency, and I'd like to work on this.

289Adam289 avatar Nov 20 '24 09:11 289Adam289

Update:

After investigating this issue for some time, I've found that it is connected to the keyboardType="decimal-pad" prop passed down to the React Native TextInput component. However, I was not able to pinpoint the root cause of this bug. After some testing, I can exclude issues related to React Native patches and the react-native-keyboard-controller library as the causes of this issue. This bug is complex and is directly connected to the React Native TextInput component, rather than any input components written within the app.

I see two possible approaches:

  1. We can implement a workaround by using the "number-pad" keyboard on Android and the "decimal-pad" keyboard on iOS to allow for decimal points. The 'number-pad' and 'decimal-pad' keyboards are very similar on Android, so no functionality would be lost. Unfortunately, this is a workaround and would not address the root cause of this issue.

  2. I can further investigate the issue to try and identify the root cause. After removing a considerable amount of code, the problem disappears, which suggests that it might be caused by certain interactions within the app—possibly events that remove focus from the keyboard. However, this will require more detailed investigation.

Please let me know which approach you think would be best moving forward.

289Adam289 avatar Nov 20 '24 16:11 289Adam289

📣 @rayane-djouah 🎉 An offer has been automatically sent to your Upwork account for the Reviewer role 🎉 Thanks for contributing to the Expensify app!

Offer link Upwork job

melvin-bot[bot] avatar Nov 21 '24 05:11 melvin-bot[bot]

Hi @289Adam289! Thanks for joining us - @rayane-djouah what do you think is best? Should we take this to the team to dicsuss

Christinadobrzyn avatar Nov 21 '24 05:11 Christinadobrzyn

nudge @rayane-djouah for a review and thoughts - thanks!

Christinadobrzyn avatar Nov 25 '24 15:11 Christinadobrzyn