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

Improve the composer swipe down closing logic #54270

Open
mountiny opened this issue Dec 17, 2024 · 10 comments
Open

Improve the composer swipe down closing logic #54270

mountiny opened this issue Dec 17, 2024 · 10 comments
Assignees
Labels
Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2

Comments

@mountiny
Copy link
Contributor

Coming from this thread in quality room.

Problem

I, as a user, are used to the fact that in every chat app I use I can interactively dismiss a keyboard. That means, when the keyboard in a chat is open to close it I can simply move my finger down the screen and as soon as my finger touches the keyboard, the keyboard is simultaneously swipes down with the movement of my finger (examples of that can be seen in "Messages App (iOS)", "WhatsApp", "Telegram", "Instagram DMs" etc - see the video attached).

In NewDot it seems like I can't dismiss the keyboard in a chat. Once i opened the keyboard there seem to be only two ways to dismiss the keyboard:

  • By navigating away from the screen and
  • By making a swipe down gesture on the text input explicitly (:warning: Someone from expensify had to educate me about this gesture explicitly. I didn't figure this out on my own!)

Now there are three problems with this:

  • Its very none standard to not be able to dismiss the keyboard interactively. Thats a lacking hygiene factor imo (whatsapp quality)
  • I never discovered option (2) on my own, thinking I simply couldn't dismiss the keyboard in chat (which was bothering me)
  • When you have a message in the composer that exceeds the line limit scrolling through the message might dismiss the keyboard as of functionality (2) which is annoying and none standard (see video in thread)

Solution

Lets add interactive keyboard dismiss support. Actually, we are already partially doing that over at this PR which we are working on.
In this PR we are basically migrating the chat to react-native-keyboard-controller which will allow us to implement the dismiss gesture very simply and consistently across platforms.

However, its not the goal of that PR to add it, it only adds the "infrastructure". I would like to open a follow up issue to add support for interactive keyboard dismissal once the mentioned PR is merged.

@mountiny mountiny added Daily KSv2 Bug Something is broken. Auto assigns a BugZero manager. labels Dec 17, 2024
@mountiny mountiny self-assigned this Dec 17, 2024
Copy link

melvin-bot bot commented Dec 17, 2024

Triggered auto assignment to @CortneyOfstad (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.

@mountiny mountiny moved this to MEDIUM in [#whatsnext] #quality Dec 17, 2024
Copy link

melvin-bot bot commented Dec 18, 2024

📣 @hannomargelo! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

  1. Make sure you've read and understood the contributing guidelines.
  2. Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
  3. Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
  4. Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.
    Screen Shot 2022-11-16 at 4 42 54 PM
    Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

@hannojg
Copy link
Contributor

hannojg commented Dec 18, 2024

cc @kirillzyusko can you please comment here, as you will be the one working on this most of the times I think (feel free to assign us both Vit!)

@kirillzyusko
Copy link
Contributor

Hello, I'm Kiryl from Margelo expert agency and I would like to work on this task 😊

@mountiny
Copy link
Contributor Author

Thanks!

Can you please write a plan of how to tackle this first, thanks!

@hannojg
Copy link
Contributor

hannojg commented Dec 20, 2024

The idea is to first get this PR merged (we can put this issue on hold for it), as it restructures the report screen to use react-native-keyboard-controller:

I think the next step once this is merged would be to build a PoC PR where we implement the interactive keyboard dismissal using RNKC on the report screen.

From this PoC we can decide if it's good to get merged already or should be split up in smaller tasks (thats a bit hard to foresee right now. My gut says/hopes that one PR is enough and the changes won't be too many).

Once we got those landed we could check if there are other product areas that could benefit from improved keyboard handling.

@CortneyOfstad
Copy link
Contributor

Hey team! Just a heads up that I will be OOO starting this afternoon (December 20th) and will be returning January 6th. A handful of folks on the BZ team will be online for a few days in between the 25th and the 1st, but we'll be operating with a skeleton crew. If any action is needed from a BZ perspective, please post this issue in #expensify-open-source and someone on the team will jump in. Otherwise I will review when I'm back in office.

Thank you and Happy Holidays!

@melvin-bot melvin-bot bot added the Overdue label Dec 23, 2024
Copy link

melvin-bot bot commented Dec 24, 2024

@CortneyOfstad, @kirillzyusko, @mountiny Whoops! This issue is 2 days overdue. Let's get this updated quick!

Copy link

melvin-bot bot commented Dec 26, 2024

@CortneyOfstad, @kirillzyusko, @mountiny Huh... This is 4 days overdue. Who can take care of this?

@kirillzyusko
Copy link
Contributor

I think we should put this issue on hold until #42143 gets merged 👀

That PR has a fundamental work and it'll be easier to adopt a new logic over a solid fundament rather than begin everything from the scratch 🙂

@melvin-bot melvin-bot bot removed the Overdue label Dec 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something is broken. Auto assigns a BugZero manager. Daily KSv2
Projects
Development

No branches or pull requests

4 participants