|  | @@ -1,6 +1,6 @@
 | 
	
		
			
				|  |  |  <script lang="ts">
 | 
	
		
			
				|  |  |  	import { toast } from 'svelte-sonner';
 | 
	
		
			
				|  |  | -	import { onMount, tick, getContext, createEventDispatcher } from 'svelte';
 | 
	
		
			
				|  |  | +	import { onMount, tick, getContext, createEventDispatcher, onDestroy } from 'svelte';
 | 
	
		
			
				|  |  |  	const dispatch = createEventDispatcher();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	import {
 | 
	
	
		
			
				|  | @@ -175,56 +175,59 @@
 | 
	
		
			
				|  |  |  		});
 | 
	
		
			
				|  |  |  	};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	onMount(() => {
 | 
	
		
			
				|  |  | -		window.setTimeout(() => chatTextAreaElement?.focus(), 0);
 | 
	
		
			
				|  |  | +	const handleKeyDown = (event: KeyboardEvent) => {
 | 
	
		
			
				|  |  | +		if (event.key === 'Escape') {
 | 
	
		
			
				|  |  | +			console.log('Escape');
 | 
	
		
			
				|  |  | +			dragged = false;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		const dropZone = document.getElementById('chat-container');
 | 
	
		
			
				|  |  | -		const handleKeyDown = (event: KeyboardEvent) => {
 | 
	
		
			
				|  |  | -			if (event.key === 'Escape') {
 | 
	
		
			
				|  |  | -				console.log('Escape');
 | 
	
		
			
				|  |  | -				dragged = false;
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		};
 | 
	
		
			
				|  |  | +	const onDragOver = (e) => {
 | 
	
		
			
				|  |  | +		e.preventDefault();
 | 
	
		
			
				|  |  | +		dragged = true;
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		const onDragOver = (e) => {
 | 
	
		
			
				|  |  | -			e.preventDefault();
 | 
	
		
			
				|  |  | -			dragged = true;
 | 
	
		
			
				|  |  | -		};
 | 
	
		
			
				|  |  | +	const onDragLeave = () => {
 | 
	
		
			
				|  |  | +		dragged = false;
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		const onDragLeave = () => {
 | 
	
		
			
				|  |  | -			dragged = false;
 | 
	
		
			
				|  |  | -		};
 | 
	
		
			
				|  |  | +	const onDrop = async (e) => {
 | 
	
		
			
				|  |  | +		e.preventDefault();
 | 
	
		
			
				|  |  | +		console.log(e);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		const onDrop = async (e) => {
 | 
	
		
			
				|  |  | -			e.preventDefault();
 | 
	
		
			
				|  |  | -			console.log(e);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -			if (e.dataTransfer?.files) {
 | 
	
		
			
				|  |  | -				const inputFiles = Array.from(e.dataTransfer?.files);
 | 
	
		
			
				|  |  | -				if (inputFiles && inputFiles.length > 0) {
 | 
	
		
			
				|  |  | -					console.log(inputFiles);
 | 
	
		
			
				|  |  | -					inputFilesHandler(inputFiles);
 | 
	
		
			
				|  |  | -				} else {
 | 
	
		
			
				|  |  | -					toast.error($i18n.t(`File not found.`));
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | +		if (e.dataTransfer?.files) {
 | 
	
		
			
				|  |  | +			const inputFiles = Array.from(e.dataTransfer?.files);
 | 
	
		
			
				|  |  | +			if (inputFiles && inputFiles.length > 0) {
 | 
	
		
			
				|  |  | +				console.log(inputFiles);
 | 
	
		
			
				|  |  | +				inputFilesHandler(inputFiles);
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				toast.error($i18n.t(`File not found.`));
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -			dragged = false;
 | 
	
		
			
				|  |  | -		};
 | 
	
		
			
				|  |  | +		dragged = false;
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	onMount(() => {
 | 
	
		
			
				|  |  | +		window.setTimeout(() => chatTextAreaElement?.focus(), 0);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		window.addEventListener('keydown', handleKeyDown);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +		const dropZone = document.getElementById('chat-container');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		dropZone?.addEventListener('dragover', onDragOver);
 | 
	
		
			
				|  |  |  		dropZone?.addEventListener('drop', onDrop);
 | 
	
		
			
				|  |  |  		dropZone?.addEventListener('dragleave', onDragLeave);
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		return () => {
 | 
	
		
			
				|  |  | -			window.removeEventListener('keydown', handleKeyDown);
 | 
	
		
			
				|  |  | +	onDestroy(() => {
 | 
	
		
			
				|  |  | +		window.removeEventListener('keydown', handleKeyDown);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -			dropZone?.removeEventListener('dragover', onDragOver);
 | 
	
		
			
				|  |  | -			dropZone?.removeEventListener('drop', onDrop);
 | 
	
		
			
				|  |  | -			dropZone?.removeEventListener('dragleave', onDragLeave);
 | 
	
		
			
				|  |  | -		};
 | 
	
		
			
				|  |  | +		const dropZone = document.getElementById('chat-container');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		dropZone?.removeEventListener('dragover', onDragOver);
 | 
	
		
			
				|  |  | +		dropZone?.removeEventListener('drop', onDrop);
 | 
	
		
			
				|  |  | +		dropZone?.removeEventListener('dragleave', onDragLeave);
 | 
	
		
			
				|  |  |  	});
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  
 |