1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-09-01 11:12:42 +02:00

fix: chromium interrupt ime (#5736)

This commit is contained in:
Czy
2024-10-08 21:55:45 +08:00
committed by GitHub
parent b1a1021612
commit 8c7f7ea6ac
2 changed files with 32 additions and 24 deletions

View File

@@ -220,18 +220,22 @@ const Mention = ({ attributes, children, element }) => {
data-cy={`mention-${element.character.replace(' ', '-')}`}
style={style}
>
{IS_MAC ? (
// Mac OS IME https://github.com/ianstormtaylor/slate/issues/3490
<Fragment>
{children}@{element.character}
</Fragment>
) : (
// Others like Android https://github.com/ianstormtaylor/slate/pull/5360
<Fragment>
@{element.character}
{children}
</Fragment>
)}
{/* Prevent Chromium from interrupting IME when moving the cursor */}
{/* 1. span + inline-block 2. div + contenteditable=false */}
<div contentEditable={false}>
{IS_MAC ? (
// Mac OS IME https://github.com/ianstormtaylor/slate/issues/3490
<Fragment>
{children}@{element.character}
</Fragment>
) : (
// Others like Android https://github.com/ianstormtaylor/slate/pull/5360
<Fragment>
@{element.character}
{children}
</Fragment>
)}
</div>
</span>
)
}

View File

@@ -242,18 +242,22 @@ const Mention = ({ attributes, children, element }) => {
data-cy={`mention-${element.character.replace(' ', '-')}`}
style={style}
>
{IS_MAC ? (
// Mac OS IME https://github.com/ianstormtaylor/slate/issues/3490
<Fragment>
{children}@{element.character}
</Fragment>
) : (
// Others like Android https://github.com/ianstormtaylor/slate/pull/5360
<Fragment>
@{element.character}
{children}
</Fragment>
)}
{/* Prevent Chromium from interrupting IME when moving the cursor */}
{/* 1. span + inline-block 2. div + contenteditable=false */}
<div contentEditable={false}>
{IS_MAC ? (
// Mac OS IME https://github.com/ianstormtaylor/slate/issues/3490
<Fragment>
{children}@{element.character}
</Fragment>
) : (
// Others like Android https://github.com/ianstormtaylor/slate/pull/5360
<Fragment>
@{element.character}
{children}
</Fragment>
)}
</div>
</span>
)
}