{
if (entry.type !== 'directory') return;
if (!e.dataTransfer?.types.includes('application/x-terminal-file-move')) return;
e.preventDefault();
e.stopPropagation();
dragOverFolder = true;
}}
on:dragleave={(e) => {
if (entry.type !== 'directory') return;
e.stopPropagation();
dragOverFolder = false;
}}
on:drop={(e) => {
if (entry.type !== 'directory') return;
const raw = e.dataTransfer?.getData('application/x-terminal-file-move');
if (!raw) return;
e.preventDefault();
e.stopPropagation();
dragOverFolder = false;
try {
const data = JSON.parse(raw);
if (data.path) {
const destFolder = `${currentPath}${entry.name}/`;
// Don't allow dropping a folder onto itself
if (data.path + '/' === destFolder || data.path === destFolder) return;
onMove(data.path, destFolder);
}
} catch {}
}}
>
e.stopPropagation()}
aria-label={$i18n.t('More')}
>
{#if entry.type !== 'directory'}
{
e.stopPropagation();
onDownload(`${currentPath}${entry.name}`);
}}
>
{$i18n.t('Download')}
{/if}
{
e.stopPropagation();
onDelete(`${currentPath}${entry.name}`, entry.name);
}}
>
{$i18n.t('Delete')}