From 7dee55d06699df88db907ca580e34ae8c22f1d2b Mon Sep 17 00:00:00 2001 From: Sunny Hirai Date: Wed, 10 Jan 2018 16:57:39 -0800 Subject: [PATCH] Updated scroll-to-selection to abort only if on iOS 11 --- .../src/utils/scroll-to-selection.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/slate-react/src/utils/scroll-to-selection.js b/packages/slate-react/src/utils/scroll-to-selection.js index a35db0307..f5fc16382 100644 --- a/packages/slate-react/src/utils/scroll-to-selection.js +++ b/packages/slate-react/src/utils/scroll-to-selection.js @@ -51,6 +51,19 @@ function findScrollContainer(el, window) { return scroller } +/** + * Get the current iOS version. Assumes that an IOS check was conducted + * prior to calling. + */ + +const IOS_VERSION_REGEX = /OS (\d+)_/ + +function getMajorIOSVersion() { + const { userAgent } = window.navigator + const matches = userAgent.match(IOS_VERSION_REGEX) + return matches ? parseInt(matches[1]) : null +} + /** * Scroll the current selection's focus point into view if needed. * @@ -58,7 +71,11 @@ function findScrollContainer(el, window) { */ function scrollToSelection(selection) { - if (IS_IOS) return + if (IS_IOS) { + const majorIOSVersion = getMajorIOSVersion() + if (majorIOSVersion && majorIOSVersion == 11) return + } + if (!selection.anchorNode) return const window = getWindow(selection.anchorNode)