forked from MapComplete/MapComplete
		
	Fix: drag & drop for file selector
This commit is contained in:
		
							parent
							
								
									285fe9ab83
								
							
						
					
					
						commit
						5be24dbef1
					
				
					 1 changed files with 23 additions and 21 deletions
				
			
		| 
						 | 
					@ -12,7 +12,28 @@
 | 
				
			||||||
  let id = Math.random() * 1000000000 + ""
 | 
					  let id = Math.random() * 1000000000 + ""
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<form>
 | 
					<form  on:change|preventDefault={() => {
 | 
				
			||||||
 | 
					      drawAttention = false
 | 
				
			||||||
 | 
					      dispatcher("submit", inputElement.files)
 | 
				
			||||||
 | 
					    }}
 | 
				
			||||||
 | 
					       on:dragend={() => {
 | 
				
			||||||
 | 
					      console.log("Drag end")
 | 
				
			||||||
 | 
					      drawAttention = false
 | 
				
			||||||
 | 
					    }}
 | 
				
			||||||
 | 
					       on:dragenter|preventDefault|stopPropagation={(e) => {
 | 
				
			||||||
 | 
					      console.log("Dragging enter")
 | 
				
			||||||
 | 
					      drawAttention = true
 | 
				
			||||||
 | 
					      e.dataTransfer.drop = "copy"
 | 
				
			||||||
 | 
					    }}
 | 
				
			||||||
 | 
					       on:dragstart={() => {
 | 
				
			||||||
 | 
					      console.log("DragStart")
 | 
				
			||||||
 | 
					      drawAttention = false
 | 
				
			||||||
 | 
					    }}
 | 
				
			||||||
 | 
					       on:drop|preventDefault|stopPropagation={(e) => {
 | 
				
			||||||
 | 
					      console.log("Got a 'drop'")
 | 
				
			||||||
 | 
					      drawAttention = false
 | 
				
			||||||
 | 
					      dispatcher("submit", e.dataTransfer.files)
 | 
				
			||||||
 | 
					    }}>
 | 
				
			||||||
  <label class={twMerge(cls, drawAttention ? "glowing-shadow" : "")} for={"fileinput" + id}>
 | 
					  <label class={twMerge(cls, drawAttention ? "glowing-shadow" : "")} for={"fileinput" + id}>
 | 
				
			||||||
    <slot />
 | 
					    <slot />
 | 
				
			||||||
  </label>
 | 
					  </label>
 | 
				
			||||||
| 
						 | 
					@ -23,26 +44,7 @@
 | 
				
			||||||
    id={"fileinput" + id}
 | 
					    id={"fileinput" + id}
 | 
				
			||||||
    {multiple}
 | 
					    {multiple}
 | 
				
			||||||
    name="file-input"
 | 
					    name="file-input"
 | 
				
			||||||
    on:change|preventDefault={() => {
 | 
					   
 | 
				
			||||||
      drawAttention = false
 | 
					 | 
				
			||||||
      dispatcher("submit", inputElement.files)
 | 
					 | 
				
			||||||
    }}
 | 
					 | 
				
			||||||
    on:dragend={() => {
 | 
					 | 
				
			||||||
      drawAttention = false
 | 
					 | 
				
			||||||
    }}
 | 
					 | 
				
			||||||
    on:dragover|preventDefault|stopPropagation={(e) => {
 | 
					 | 
				
			||||||
      console.log("Dragging over!")
 | 
					 | 
				
			||||||
      drawAttention = true
 | 
					 | 
				
			||||||
      e.dataTransfer.drop = "copy"
 | 
					 | 
				
			||||||
    }}
 | 
					 | 
				
			||||||
    on:dragstart={() => {
 | 
					 | 
				
			||||||
      drawAttention = false
 | 
					 | 
				
			||||||
    }}
 | 
					 | 
				
			||||||
    on:drop|preventDefault|stopPropagation={(e) => {
 | 
					 | 
				
			||||||
      console.log("Got a 'drop'")
 | 
					 | 
				
			||||||
      drawAttention = false
 | 
					 | 
				
			||||||
      dispatcher("submit", e.dataTransfer.files)
 | 
					 | 
				
			||||||
    }}
 | 
					 | 
				
			||||||
    type="file"
 | 
					    type="file"
 | 
				
			||||||
  />
 | 
					  />
 | 
				
			||||||
</form>
 | 
					</form>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue