From 9aa573e9b8b2aff0c702fc6efa622e71db7759f1 Mon Sep 17 00:00:00 2001 From: Joe Anderson Date: Wed, 22 Nov 2023 13:22:40 +0000 Subject: [PATCH] Apply placeholder delay only on Android devices (#5564) --- .changeset/gold-bottles-collect.md | 5 +++++ packages/slate-react/src/components/leaf.tsx | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 .changeset/gold-bottles-collect.md diff --git a/.changeset/gold-bottles-collect.md b/.changeset/gold-bottles-collect.md new file mode 100644 index 000000000..9f424914f --- /dev/null +++ b/.changeset/gold-bottles-collect.md @@ -0,0 +1,5 @@ +--- +'slate-react': patch +--- + +Apply 300ms placeholder delay only on Android devices diff --git a/packages/slate-react/src/components/leaf.tsx b/packages/slate-react/src/components/leaf.tsx index 7ac2a43fb..0bef06537 100644 --- a/packages/slate-react/src/components/leaf.tsx +++ b/packages/slate-react/src/components/leaf.tsx @@ -16,7 +16,11 @@ import { } from '../utils/weak-maps' import { RenderLeafProps, RenderPlaceholderProps } from './editable' import { useSlateStatic } from '../hooks/use-slate-static' -import { IS_WEBKIT } from '../utils/environment' +import { IS_WEBKIT, IS_ANDROID } from '../utils/environment' + +// Delay the placeholder on Android to prevent the keyboard from closing. +// (https://github.com/ianstormtaylor/slate/pull/5368) +const PLACEHOLDER_DELAY = IS_ANDROID ? 300 : 0 function disconnectPlaceholderResizeObserver( placeholderResizeObserver: MutableRefObject, @@ -104,7 +108,7 @@ const Leaf = (props: { showPlaceholderTimeoutRef.current = setTimeout(() => { setShowPlaceholder(true) showPlaceholderTimeoutRef.current = null - }, 300) + }, PLACEHOLDER_DELAY) } } else { clearTimeoutRef(showPlaceholderTimeoutRef)