delete multiple files with selection
This commit is contained in:
@@ -6,7 +6,6 @@ import {
|
||||
ContextMenuItem,
|
||||
ContextMenuSeparator,
|
||||
} from '@/components/ui/context-menu';
|
||||
import { deleteWarrenDirectory, deleteWarrenFile } from '~/lib/api/warrens';
|
||||
import type { DirectoryEntry } from '#shared/types';
|
||||
|
||||
const warrenStore = useWarrenStore();
|
||||
@@ -26,9 +25,9 @@ const {
|
||||
const emit = defineEmits<{
|
||||
'entry-click': [entry: DirectoryEntry, event: MouseEvent];
|
||||
'entry-download': [entry: DirectoryEntry];
|
||||
'entry-delete': [entry: DirectoryEntry, force: boolean];
|
||||
}>();
|
||||
|
||||
const deleting = ref(false);
|
||||
const isCopied = computed(
|
||||
() =>
|
||||
warrenStore.current != null &&
|
||||
@@ -39,32 +38,11 @@ const isCopied = computed(
|
||||
);
|
||||
const isSelected = computed(() => warrenStore.isSelected(entry));
|
||||
|
||||
async function submitDelete(force: boolean = false) {
|
||||
if (warrenStore.current == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
deleting.value = true;
|
||||
|
||||
if (entry.fileType === 'directory') {
|
||||
await deleteWarrenDirectory(
|
||||
warrenStore.current.warrenId,
|
||||
warrenStore.current.path,
|
||||
entry.name,
|
||||
force
|
||||
);
|
||||
} else {
|
||||
await deleteWarrenFile(
|
||||
warrenStore.current.warrenId,
|
||||
warrenStore.current.path,
|
||||
entry.name
|
||||
);
|
||||
}
|
||||
|
||||
deleting.value = false;
|
||||
function onDelete(force: boolean = false) {
|
||||
emit('entry-delete', entry, force);
|
||||
}
|
||||
|
||||
async function openRenameDialog() {
|
||||
function openRenameDialog() {
|
||||
renameDialog.openDialog(entry);
|
||||
}
|
||||
|
||||
@@ -183,15 +161,14 @@ function onClearCopy() {
|
||||
|
||||
<ContextMenuItem
|
||||
:class="[warrenStore.current == null && 'hidden']"
|
||||
@select="() => submitDelete(false)"
|
||||
@select="() => onDelete(false)"
|
||||
>
|
||||
<Icon name="lucide:trash-2" />
|
||||
Delete
|
||||
</ContextMenuItem>
|
||||
<ContextMenuItem
|
||||
v-if="entry.fileType === 'directory'"
|
||||
:class="[warrenStore.current == null && 'hidden']"
|
||||
@select="() => submitDelete(true)"
|
||||
@select="() => onDelete(true)"
|
||||
>
|
||||
<Icon
|
||||
class="text-destructive-foreground"
|
||||
|
||||
Reference in New Issue
Block a user