Skip to content

Conversation

@MrSltun
Copy link
Member

@MrSltun MrSltun commented Dec 18, 2025

This PR resolves MOPRAT-867

Description

This PR updates how we handle the keyboard across the app

Videos

Since these changes cover a lot of places, I only recorded a few areas where the effect is very visible

Old (current) keyboard handling implementation

Videos
Android iOS
Conversations
keyboard-inquiry-android-before-low.mp4
keyboard-inquiry-ios-before-low.mp4
Complete my Profile
keyboard-complete-profile-android-before-low.mp4
keyboard-complete-profile-ios-before-low.mp4
My Collection
keyboard-my-collection-android-before-low.mp4
keyboard-my-collection-ios-before-low.mp4
Auction Credit Card form
keyboard-credit-card-android-before-low.mp4
keyboard-credit-card-ios-before-low.mp4

New keyboard handling implementation

Videos
Android iOS
Conversations
keyboard-inquiry-android-after-low.mp4
keyboard-inquiry-ios-after-low.mp4
Complete my Profile
keyboard-complete-profile-android-after-low.mp4
keyboard-complete-profile-ios-after-low.mp4
My Collection
keyboard-my-collection-android-after-low.mp4
keyboard-my-collection-ios-after-low.mp4
Auction Credit Card form
keyboard-credit-card-android-after-low.mp4
keyboard-credit-card-ios-after-low.mp4

PR Checklist

  • I have tested my changes on the following platforms:
    • Android.
    • iOS.
  • I hid my changes behind a feature flag, or they don't need one.
  • I have included screenshots or videos at least on Android, or I have not changed the UI.
  • I have added tests, or my changes don't require any.
  • I added an app state migration, or my changes do not require one.
  • I have documented any follow-up work that this PR will require, or it does not require any.
  • I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

  • I would like at least one of the reviewers to run this PR on the simulator or device.
Changelog updates

Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

  • Improve keyboard handling across the app

Need help with something? Have a look at our docs, or get in touch with us.

@MrSltun MrSltun self-assigned this Dec 18, 2025
@artsy-peril
Copy link
Contributor

artsy-peril bot commented Dec 18, 2025

react-native-keyboard-controller

Author: Kiryl Ziusko

Description: Keyboard manager which works in identical way on both iOS and Android

Homepage: https://kirillzyusko.github.io/react-native-keyboard-controller/

Createdover 3 years ago
Last Updated7 days ago
LicenseMIT
Maintainers1
Releases105
Direct Dependenciesreact-native-is-edge-to-edge
Keywordsreact-native, keyboard, interactive, dismiss, animation, focused input, text changed, selection changed, avoiding view, avoid keyboard, sticky view, over keyboard view, keyboard background view, keyboard aware scroll view, keyboard toolbar, keyboard done button, keyboard next button, keyboard previous button, extend keyboard, ios and android
README

react-native-keyboard-controller

A universal keyboard handling solution for React Native — lightweight, fully customizable, and built for real-world apps. Smooth animations, consistent behavior on both iOS and Android, with a developer-oriented design.

Key features

  • 🧬 Map keyboard movement to animated values
  • 🧪 keyboardWillShow / keyboardWillHide events now available on Android
  • 🔮 Change soft input mode on Android
  • ⚡ Preload keyboard to avoid first-time focus lag
  • 🚀 Reanimated support
  • 📱 Interactive keyboard dismissing 👆📱
  • 📚 Prebuilt components (KeyboardStickyView, KeyboardAwareScrollView, reworked KeyboardAvoidingView)
  • 📐 KeyboardToolbar with customizable previous, next, and done buttons
  • 🌐 Display anything over the keyboard (without dismissing it) using OverKeyboardView
  • 🎨 Match keyboard background with KeyboardBackgroundView
  • 🧩 Extend keyboard with custom buttons/UI via KeyboardExtender
  • 📝 Easy retrieval of focused input info
  • 🧭 Compatible with any navigation library
  • ✨ More coming soon... stay tuned! 😊

Installation

Check out the installation section of the docs for detailed setup instructions.

Documentation

Full API reference and guides available at:
https://kirillzyusko.github.io/react-native-keyboard-controller/

Contributing

See the contributing guide to learn how to contribute to the repo and development workflow.

License

MIT

New dependencies added: react-native-keyboard-controller.

Generated by 🚫 dangerJS against d67da92

@artsyit
Copy link
Collaborator

artsyit commented Dec 18, 2025

New dependencies added: react-native-keyboard-controller.

react-native-keyboard-controller

Used in package.json
Author: Kiryl Ziusko Description: Keyboard manager which works in identical way on both iOS and Android
License: MIT Homepage: https://kirillzyusko.github.io/react-native-keyboard-controller/
Keywords: react-native, keyboard, interactive, dismiss, animation, focused input, text changed, selection changed, avoiding view, avoid keyboard, sticky view, over keyboard view, keyboard background view, keyboard aware scroll view, keyboard toolbar, keyboard done button, keyboard next button, keyboard previous button, extend keyboard, ios and android
Updated: 7 days ago Created: over 3 years ago
Releases: 105 Maintainers: 1
Direct Dependencies: react-native-is-edge-to-edge
README

react-native-keyboard-controller

A universal keyboard handling solution for React Native — lightweight, fully customizable, and built for real-world apps. Smooth animations, consistent behavior on both iOS and Android, with a developer-oriented design.

Key features

  • 🧬 Map keyboard movement to animated values
  • 🧪 keyboardWillShow / keyboardWillHide events now available on Android
  • 🔮 Change soft input mode on Android
  • ⚡ Preload keyboard to avoid first-time focus lag
  • 🚀 Reanimated support
  • 📱 Interactive keyboard dismissing 👆📱
  • 📚 Prebuilt components (KeyboardStickyView, KeyboardAwareScrollView, reworked KeyboardAvoidingView)
  • 📐 KeyboardToolbar with customizable previous, next, and done buttons
  • 🌐 Display anything over the keyboard (without dismissing it) using OverKeyboardView
  • 🎨 Match keyboard background with KeyboardBackgroundView
  • 🧩 Extend keyboard with custom buttons/UI via KeyboardExtender
  • 📝 Easy retrieval of focused input info
  • 🧭 Compatible with any navigation library
  • ✨ More coming soon... stay tuned! 😊

Installation

Check out the installation section of the docs for detailed setup instructions.

Documentation

Full API reference and guides available at:
https://kirillzyusko.github.io/react-native-keyboard-controller/

Contributing

See the contributing guide to learn how to contribute to the repo and development workflow.

License

MIT

Generated by 🚫 dangerJS against d67da92

@MrSltun MrSltun changed the title feat: Improve keyboard handling across the app feat(MOPRAT-867): Improve keyboard handling across the app Dec 19, 2025
@github-actions
Copy link

github-actions bot commented Dec 19, 2025

🎉 Beta Versions Generated (commit: 995ea05)

Android 🤖

  • 8.91.0 (2025121913) - Available on Firebase
  • 8.91.0 (2025121913) - Available on Play Store

iOS 🍏

  • 8.91.0 (2025.12.19.13) - Available on Firebase
  • 8.91.0 (2025.12.19.13) - Available on TestFlight

@github-actions
Copy link

github-actions bot commented Dec 23, 2025

🎉 Beta Versions Generated (commit: 7ccfdec)

Android 🤖

  • 8.91.0 (2025122317) - Available on Play Store
  • 8.91.0 (2025122317) - Available on Firebase

iOS 🍏

  • 8.91.0 (2025.12.23.17) - Available on TestFlight
  • 8.91.0 (2025.12.23.17) - Available on Firebase

@MrSltun MrSltun marked this pull request as ready for review December 24, 2025 18:19
@MrSltun MrSltun requested a review from olerichter00 December 24, 2025 18:20
@MounirDhahri
Copy link
Member

This is impressive work @MrSltun and is a great wrap for 2025!
I see improvements literally on all screens and pretty old issues finally fixed. Proper keyboard handling is key for a great UX and you nailed it with this one 👏🏽 - Thanks

olerichter00
olerichter00 previously approved these changes Dec 29, 2025
Copy link
Contributor

@olerichter00 olerichter00 left a comment

Choose a reason for hiding this comment

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

Great work! 🌟

name: "react-native",
importNames: ["Keyboard"],
message:
"Please use KeyboardController from 'react-native-keyboard-controller' instead.",
Copy link
Contributor

Choose a reason for hiding this comment

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

nice

brainbicycle
brainbicycle previously approved these changes Dec 29, 2025
Copy link
Contributor

@brainbicycle brainbicycle left a comment

Choose a reason for hiding this comment

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

looks great! ✨ love the more consistent floating buttons, I bet we might even see a small bump in some completion metrics on some of these forms, registrations, my profile additions.

Small request, I think we should keep the habit of RFCs for big dep additions, I don't think this one is controversial at all, seems well supported and a solid UX improvement but would be good to just document the why and the decision via an RFC: #12680 just a couple paragraphs and a link to this PR is plenty.

araujobarret
araujobarret previously approved these changes Dec 29, 2025
@MrSltun MrSltun force-pushed the mrsltun/MOPRAT-867/improve-keyboard-handling branch from a85cf6b to e35e390 Compare January 6, 2026 11:26
@artsy artsy deleted a comment from ArtsyOpenSource Jan 6, 2026
@artsy artsy deleted a comment from ArtsyOpenSource Jan 6, 2026
@ArtsyOpenSource
Copy link
Contributor

This PR contains the following changes:

  • Dev changes (Improve keyboard handling across the app - MrSltun)

Generated by 🚫 dangerJS against d67da92

Copy link
Contributor

@dariakoko dariakoko left a comment

Choose a reason for hiding this comment

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

Great work Sultan!

@github-actions
Copy link

github-actions bot commented Jan 7, 2026

🎉 Beta Versions Generated (commit: d67da92)

Android 🤖

  • 8.91.0 (2026010712) - Available on Play Store
  • 8.91.0 (2026010712) - Available on Firebase

iOS 🍏

  • 8.91.0 (2026.01.07.12) - Available on Firebase
  • 8.91.0 (2026.01.07.12) - Available on TestFlight

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[RFC] New dependency: react-native-keyboard-controller

9 participants