Prevent rich-formatting paste (#4327)
* fix: prevent rich-formatting paste * fix: return true instead of preventDefaultzio/stable
parent
ebd4f93b9c
commit
247af5aee9
|
@ -150,16 +150,27 @@ export const TextInput = React.forwardRef(function TextInputImpl(
|
|||
attributes: {
|
||||
class: modeClass,
|
||||
},
|
||||
handlePaste: (_, event) => {
|
||||
const items = event.clipboardData?.items
|
||||
handlePaste: (view, event) => {
|
||||
const clipboardData = event.clipboardData
|
||||
|
||||
if (items === undefined) {
|
||||
return
|
||||
}
|
||||
if (clipboardData) {
|
||||
if (clipboardData.types.includes('text/html')) {
|
||||
// Rich-text formatting is pasted, try retrieving plain text
|
||||
const text = clipboardData.getData('text/plain')
|
||||
|
||||
getImageFromUri(items, (uri: string) => {
|
||||
// `pasteText` will invoke this handler again, but `clipboardData` will be null.
|
||||
view.pasteText(text)
|
||||
|
||||
// Return `true` to prevent ProseMirror's default paste behavior.
|
||||
return true
|
||||
} else {
|
||||
// Otherwise, try retrieving images from the clipboard
|
||||
|
||||
getImageFromUri(clipboardData.items, (uri: string) => {
|
||||
textInputWebEmitter.emit('photo-pasted', uri)
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
handleKeyDown: (_, event) => {
|
||||
if ((event.metaKey || event.ctrlKey) && event.code === 'Enter') {
|
||||
|
|
Loading…
Reference in New Issue