export function dropZone ( id , cb ) { const dropTarget = document . getElementById ( id ) ; dropTarget . ondragover = ( evt ) => { evt . preventDefault ( ) ; dropTarget . classList . add ( 'active' ) ; } ; dropTarget . ondragleave = ( ) => { dropTarget . classList . remove ( 'active' ) ; } ; dropTarget . ondrop = ( evt ) => { evt . preventDefault ( ) ; dropTarget . classList . remove ( 'active' ) ; const item = evt . dataTransfer . items [ 0 ] ; if ( item . kind !== 'file' ) { return ; } cb ( item . getAsFile ( ) ) ; } ; dropTarget . onclick = ( ) => { const input = document . createElement ( 'input' ) ; input . type = 'file' ; input . onchange = ( ) => input . files . length && cb ( input . files [ 0 ] ) ; input . click ( ) ; } ; }