@@ -21,23 +21,15 @@ function onDrop(event: DragEvent) {
2121 if ( hasFile ( transfer ) ) return
2222 if ( ! hasLink ( transfer ) ) return
2323
24- let linkified = false
25- const transformedLinks = links ( transfer ) . map ( link => {
26- if ( isImageLink ( link ) ) {
27- linkified = true
28- return `\n\n`
29- } else {
30- return link
31- }
32- } )
33- if ( ! linkified ) return
24+ const links = extractLinks ( transfer )
25+ if ( ! links . some ( isImageLink ) ) return
3426
3527 event . stopPropagation ( )
3628 event . preventDefault ( )
3729
3830 const field = event . currentTarget
3931 if ( ! ( field instanceof HTMLTextAreaElement ) ) return
40- insertText ( field , transformedLinks . join ( '' ) )
32+ insertText ( field , links . map ( linkify ) . join ( '' ) )
4133}
4234
4335function onDragover ( event : DragEvent ) {
@@ -49,23 +41,19 @@ function onPaste(event: ClipboardEvent) {
4941 const transfer = event . clipboardData
5042 if ( ! transfer || ! hasLink ( transfer ) ) return
5143
52- let linkified = false
53- const transformedLinks = links ( transfer ) . map ( link => {
54- if ( isImageLink ( link ) ) {
55- linkified = true
56- return `\n\n`
57- } else {
58- return link
59- }
60- } )
61- if ( ! linkified ) return
44+ const links = extractLinks ( transfer )
45+ if ( ! links . some ( isImageLink ) ) return
6246
6347 event . stopPropagation ( )
6448 event . preventDefault ( )
6549
6650 const field = event . currentTarget
6751 if ( ! ( field instanceof HTMLTextAreaElement ) ) return
68- insertText ( field , transformedLinks . join ( '' ) )
52+ insertText ( field , links . map ( linkify ) . join ( '' ) )
53+ }
54+
55+ function linkify ( link : string ) : string {
56+ return isImageLink ( link ) ? `\n\n` : link
6957}
7058
7159function hasFile ( transfer : DataTransfer ) : boolean {
@@ -76,7 +64,7 @@ function hasLink(transfer: DataTransfer): boolean {
7664 return Array . from ( transfer . types ) . indexOf ( 'text/uri-list' ) >= 0
7765}
7866
79- function links ( transfer : DataTransfer ) : Array < string > {
67+ function extractLinks ( transfer : DataTransfer ) : Array < string > {
8068 return ( transfer . getData ( 'text/uri-list' ) || '' ) . split ( '\r\n' )
8169}
8270
0 commit comments