Fix room input for virtual keyboard on webkit (#2346)

* Slate style has certain behavior elements that iOS expects

* Swap to using that implementation
This commit is contained in:
Jaggar 2025-08-05 13:04:21 +00:00 committed by GitHub
parent 6a27720709
commit 34dd64103c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 20 additions and 25 deletions

View file

@ -41,21 +41,21 @@ export const EditorTextarea = style([
},
]);
export const EditorPlaceholder = style([
export const EditorPlaceholderContainer = style([
DefaultReset,
{
position: 'absolute',
zIndex: 1,
width: '100%',
opacity: config.opacity.Placeholder,
pointerEvents: 'none',
userSelect: 'none',
},
]);
selectors: {
'&:not(:first-child)': {
display: 'none',
},
},
export const EditorPlaceholderTextVisual = style([
DefaultReset,
{
display: 'block',
paddingTop: toRem(13),
paddingLeft: toRem(1),
},
]);

View file

@ -106,22 +106,17 @@ export const CustomEditor = forwardRef<HTMLDivElement, CustomEditorProps>(
[editor, onKeyDown]
);
const renderPlaceholder = useCallback(({ attributes, children }: RenderPlaceholderProps) => {
// drop style attribute as we use our custom placeholder css.
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { style, ...props } = attributes;
return (
<Text
as="span"
{...props}
className={css.EditorPlaceholder}
contentEditable={false}
truncate
>
const renderPlaceholder = useCallback(
({ attributes, children }: RenderPlaceholderProps) => (
<span {...attributes} className={css.EditorPlaceholderContainer}>
{/* Inner component to style the actual text position and appearance */}
<Text as="span" className={css.EditorPlaceholderTextVisual} truncate>
{children}
</Text>
</span>
),
[]
);
}, []);
return (
<div className={css.Editor} ref={ref}>