Prevent rich-formatting paste (#4327)
* fix: prevent rich-formatting paste * fix: return true instead of preventDefault
This commit is contained in:
		
							parent
							
								
									ebd4f93b9c
								
							
						
					
					
						commit
						247af5aee9
					
				
					 1 changed files with 19 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -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')
 | 
			
		||||
 | 
			
		||||
              // `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)
 | 
			
		||||
              })
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          getImageFromUri(items, (uri: string) => {
 | 
			
		||||
            textInputWebEmitter.emit('photo-pasted', uri)
 | 
			
		||||
          })
 | 
			
		||||
        },
 | 
			
		||||
        handleKeyDown: (_, event) => {
 | 
			
		||||
          if ((event.metaKey || event.ctrlKey) && event.code === 'Enter') {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue