Skip to content

Releases: kirillzyusko/react-native-keyboard-controller

Release 1.13.0

16 Aug 08:21
a0a156c
Compare
Choose a tag to compare

Release that allows to use the functionality of this library in Modals on Android, adds offset property to KeyboardGestureArea component, gives an ability to prevent default actions from being fired in KeyboardToolbar, brings support for [email protected], contains a lot of other bug fixes and improves the stability of the library. Read more about all changes in blogpost 🎉

🐛 Bug fixes

  • proper ref deallocation with FlatList -> KeyboardAwareScrollView usage (e79dbc7) closes #525
  • KeyboardToolbar accessibility wording (ef2f58c)
  • instant keyboard hide causes KeyboardAvoidingView keeping bottom space (6861faf)
  • web compilation (10a90ae)

👍 Improvements

  • modal support on Android (4a796eb) closes #369 #387
  • react on StatusBar.translucent changes (265b93c) closes #526
  • new offset prop for KeyboardGestureArea on Android (2f901a9)
  • allow keyboard toolbar button callbacks to cancel default actions (36b704b)
  • synchronous handler mount (cfc62b7)
  • support for react-native version 0.75 (c2a635b)

🔢 Miscellaneous

  • missing permissions for publishing package from CI (72c9fed)
  • allow manual publishing of the package from CI (a2abcd2)
  • add e2e tests for native-stack screen (2729e28)
  • update detox (bdaa38e)
  • run e2e tests on iOS 16 and iOS 18 08efc81
  • add KeyboardToolBarTheme type example (1bce3c8)
  • minor eslint tweaks (bb43792)
  • added interactive keyword to docs, improve SEO search (54dc6d7)
  • bump minimal react-native-reanimated version (23b0466)
  • hook names truncated in docs menu bar (e6ea67f)
  • use docusaurus 3.4.0 (a265bf0)
  • blogpost for 1.13.0 (b4eef45)
  • checkout 1.13.0 docs (7fcb6b7)

🚨⚠️🚨 Caution 🚨⚠️🚨

This release doesn't have any breaking changes. However if you used undocumented setKeyboardHandlers/setInputHandlers method (from context/useKeyboardContext), then, please, be aware that the signature of the method was changed:

const context = useKeyboardContext();

// ...

-context.setKeyboardHandlers({ [key]: handler });
+const cleanup = context.setKeyboardHandlers(handler);

But since it was not documented and mostly was used by internal hooks - this change is not treated as a breaking one.

Release 1.12.7

24 Jul 10:31
f8b978b
Compare
Choose a tag to compare

Release that improves animation precision on iOS, adds reaction to text selection changes in KeyboardAwareScrollView, revealing react-compiler violations in source code, resolves some bugs, adds more e2e tests and improving stability 👀

🐛 Bug fixes

  • pick up proper ViewController for KeyboardToolbar when modal is shown (1e446dc)

👍 Improvements

  • react on selection changes in KeyboardAwareScrollView (7af6fac)
  • precise timing keyboard animation on iOS (7c3f4ae)

🔢 Miscellaneous

  • stable e2e selection test on API 31 (8f94250)
  • KeyboardAvoidingView e2e tests (85ca03c)
  • add verified badge to npm (8fc2303)
  • detect react-compiler rules violations (dce5a57)

Release 1.12.6

12 Jul 08:52
6e3068e
Compare
Choose a tag to compare

Less bugs, better stability 🚀

🐛 Bug fixes

  • handle contextMenuHidden prop on iOS properly (887b110)
  • support both (worklet and js) onScroll handler for KeyboardAwareScrollView (35a6e2a)
  • incorrect scroll distance on Android if KeyboardAwareScrollView gets mounted faster than first windowDidResize event gets received (3bda77c);

🔢 Miscellaneous

  • use google_apis device in e2e tests (4b6a06d)
  • test emoji keyboard in e2e (b750fad)
  • e2e tests for interactive keyboard (0629edf)

Note

Starting from this version minimal supported react-native-reanimated version is 2.11.0.

Release 1.12.5

05 Jul 10:14
487eadd
Compare
Choose a tag to compare

Another release improving stability of 1.12 😎

🐛 Bug fixes

  • RN 0.75 compilation error (979bd42)
  • update selection on focus on iOS (753cb57) closes #482
  • race condition between js and worklet in KeyboardAwareScrollView (6825c25)
  • incorrect selection coordinates when input grows on iOS (6bb145c) closes #489
  • memoize WindowDimensionListener per context (6e3e0af) closes #486

🔢 Miscellaneous

  • rename "Run Gradle Lint" -> "Run Gradle Assemble" for Android Build job (ba5dc0a)
  • run e2e tests on Android 12 (0814a6a)
  • reorganize iOS extensions (c4c52f4)
  • update react-native to 0.74.3 (a029a51)

Release 1.12.4

20 Jun 12:47
10a254e
Compare
Choose a tag to compare

Just another release that contains some important bug fixes 😊

🐛 Bug fixes

  • compatibility for RN < 0.72 (02c842d)
  • random scrolls of KeyboardAwareScrollView during re-render (21eff3b) closes #476 #384

🔢 Miscellaneous

  • update react-native-reanimated to 3.12.1 (2f63fea)

Release 1.12.3

14 Jun 11:03
a5f8ab0
Compare
Choose a tag to compare

Release that adds support for snapToOffsets property for KeyboardAwareScrollView, resolves some old issues and improving stability of the library in some corner cases 💪

🐛 Bug fixes

  • snapPoints scroll calculations for KeyboardAwareScrollView (56400db)
  • missing navigationBar height in keyboard size if navigationBar is translucent (97d504d)
  • not detectable keyboard view on iOS (950d3bc)
  • ignore non-visible keyboard (3b9460c)

👍 Improvements

🔢 Miscellaneous

  • added tips and info badges for KeyboardAwareScrollView page in docs (1d2cfbd)
  • fixed KeyboardAware types in BottomSheet integration section docs (8249e48)
  • mention softwareKeyboardLayoutMode in docs (4361c2e)
  • pin iOS/XCode versions to a local env in CI/e2e (8a575c1)

Release 1.12.2

03 Jun 13:56
0e41662
Compare
Choose a tag to compare

Release that improves stability of 1.12.0 👀

🐛 Bug fixes

  • better algorithm for horizontal UIScrollView detection (c8ff1cf)
  • fixed iOS 13 compilation issues (8de40a6)

👍 Improvements

  • added extraKeybordSpace property for KeyboardAwareScrollView (bd66950)

Release 1.12.1

16 May 09:34
6da7f58
Compare
Choose a tag to compare

Release that improves stability of 1.12.0 🚀

🐛 Bug fixes

  • detect only vertical ScrollView for parentScrollViewTarget (f572467)
  • prevent crash when no first responder (02002e9)
  • fix race condition between keyboardWillHide and KVO (365f4c1)

🔢 Miscellaneous

  • update compatibility table (da91769)
  • KeyboardAwareScrollView + @gorhom/bottom-sheet integration in docs (33853e1)

Release 1.12.0

13 May 11:22
7577477
Compare
Choose a tag to compare

Release that adds support for bridgeless mode, enhances KeyboardToolbar component, adds onSelectionChange handler, improves precision of onMove handler on iOS and contains many other fixes and improvements 😎

🐛 Bug fixes

  • export component props (6ffa49d)
  • use dp for selection events (f2ea4fe)

👍 Improvements

  • added KeyboardToolbar callbacks (7d2ccb5)
  • added KeyboardToolbar blur (b9da9ad)
  • added support for bridgless (590ff6e)
  • eliminate one frame delay in onMove handler on iOS (27da1d0)
  • use KeyboardAnimation as common interface for an animation driver (54a0473)
  • added onSelectionChange handler (810efdb)
  • consume onChangeText events from delegate (427c26c)

🔢 Miscellaneous

  • mention that react-native-reanimated is a mandatory dependency right now (0c90ac8)
  • add avoid keyboard keyword, update SEO keywords, fix flaky docs e2e tests (a3538f9)
  • spellcheck integration (64b2e21)
  • remove unused ReanimatedChatFlatlist directory from FabricExample app (acacd10)
  • added ModalExample (ddc6c37)
  • KeyboardAwareScrollView + FlatList integration in documentation (065e4db)
  • added an ability to show video demos in documentation (990574c)
  • add API to footer in documentation (2060506)
  • docs for 1.12.0 (4cabd4d)
  • blogpost for 1.12.0 (3be37df)

🚨⚠️🚨 Caution 🚨⚠️🚨

This release doesn't have any breaking changes, but the fix added in d7d2ecd got reverted (because global layout animation is overwriting animation managed by onMove handler - i. e. with this fix in place it's not possible to synchronize keyboard movement and animation driven by onMove handler). The proposed solution is to use useKeyboardHandler hook, for example:

const useReanimatedKeyboardAnimation = () => {
  const height = useSharedValue(0);
  
  useKeyboardHandler({
    onMove: (e) => {
      height.value = e.height;
    },
  }, []);
  
  return { height };
}

Check example of js code to see how it should be handled now 👀

Release 1.11.7

24 Apr 07:23
b1c4ed5
Compare
Choose a tag to compare

Most likely last release for 1.11.x version before upcoming 1.12.0 😎

🐛 Bug fixes

  • react on enabled property toggle when keyboard open in KeyboardAwareScrollView component (e2d7310)

👍 Improvements

  • remove the xcodeproj from the library (7678eec)

🔢 Miscellaneous