From 3d6aaa7aaab988bce402ee3c6bac4c4bc0fc93fa Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 20 Mar 2023 13:20:21 +0900 Subject: tweak drive-cleaner --- .../frontend/src/pages/settings/drive-cleaner.vue | 167 ++++++++------------- 1 file changed, 65 insertions(+), 102 deletions(-) (limited to 'packages/frontend/src/pages/settings/drive-cleaner.vue') diff --git a/packages/frontend/src/pages/settings/drive-cleaner.vue b/packages/frontend/src/pages/settings/drive-cleaner.vue index ce8ab214e4..2342280ca7 100644 --- a/packages/frontend/src/pages/settings/drive-cleaner.vue +++ b/packages/frontend/src/pages/settings/drive-cleaner.vue @@ -1,49 +1,44 @@ @@ -58,6 +53,7 @@ import bytes from '@/filters/bytes'; import { dateString } from '@/filters/date'; import { definePageMetadata } from '@/scripts/page-metadata'; import MkSelect from '@/components/MkSelect.vue'; +import { getDriveFileMenu } from '@/scripts/get-drive-file-menu'; let sortMode = '+size'; const pagination = { @@ -78,27 +74,22 @@ const sortModeSelect = ref('sizeDesc'); fetchDriveInfo(); -watch(fetching, () => { - if (fetching.value) { - fetchDriveInfo(); - } -}); - watch(sortModeSelect, () => { switch (sortModeSelect.value) { case 'sizeDesc': sortMode = '+size'; - fetching.value = true; + fetchDriveInfo(); break; case 'createdAtAsc': sortMode = '-createdAt'; - fetching.value = true; + fetchDriveInfo(); break; } }); function fetchDriveInfo(): void { + fetching.value = true; os.api('drive').then(info => { capacity.value = info.capacity; usage.value = info.usage; @@ -113,30 +104,12 @@ function genUsageBar(fsize: number): object { }; } -function onContextMenu(ev: MouseEvent, fileId: string): void { - const target = ev.target as HTMLElement; - const items = [ - { - text: i18n.ts.delete, - icon: 'ti ti-trash-x', - danger: true, - action: async (): Promise => { - const res = await os.confirm({ - type: 'warning', - title: i18n.ts.delete, - text: i18n.ts.deleteConfirm, - }); - if (!res.canceled) { - await os.apiWithDialog('drive/files/delete', { fileId: fileId }); - fetching.value = true; - } - }, - }, - ]; - ev.preventDefault(); - os.popupMenu(items, target, { - viaKeyboard: false, - }); +function onClick(ev: MouseEvent, file) { + os.popupMenu(getDriveFileMenu(file), (ev.currentTarget ?? ev.target ?? undefined) as HTMLElement | undefined); +} + +function onContextMenu(ev: MouseEvent, file): void { + os.contextMenu(getDriveFileMenu(file), ev); } definePageMetadata({ @@ -145,49 +118,39 @@ definePageMetadata({ }); - -- cgit v1.2.3-freya