Skip to content

Improve the composer swipe down closing logic #54270

Description

@mountiny

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.

Issue OwnerCurrent Issue Owner: @chrispader

Metadata

Metadata

Labels

BugSomething is broken. Auto assigns a BugZero manager.MonthlyKSv2Not a priority

Type

No type
No fields configured for issues without a type.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions