Skip to content

Commit 34df6c7

Browse files
committed
feat: add delete keyboard shortcut
1 parent 312ca28 commit 34df6c7

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

packages/web-pkg/src/components/FilesList/ResourceTable.vue

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,10 @@ import {
286286
useIsTopBarSticky,
287287
embedModeFilePickMessageData,
288288
routeToContextQuery,
289-
useSpaceActionsRename
289+
useSpaceActionsRename,
290+
Key,
291+
useKeyboardActions,
292+
useSpacesStore
290293
} from '../../composables'
291294
import ResourceListItem from './ResourceListItem.vue'
292295
import ResourceGhostElement from './ResourceGhostElement.vue'
@@ -306,7 +309,7 @@ import ContextMenuQuickAction from '../ContextActions/ContextMenuQuickAction.vue
306309
import { useResourceRouteResolver } from '../../composables/filesList/useResourceRouteResolver'
307310
import { ClipboardActions } from '../../helpers/clipboardActions'
308311
import { determineResourceTableSortFields } from '../../helpers/ui/resourceTable'
309-
import { useFileActionsRename } from '../../composables/actions'
312+
import { useFileActionsDelete, useFileActionsRename } from '../../composables/actions'
310313
import { createLocationCommon } from '../../router'
311314
import get from 'lodash-es/get'
312315
import { storeToRefs } from 'pinia'
@@ -560,8 +563,12 @@ export default defineComponent({
560563
const authStore = useAuthStore()
561564
const { userContextReady } = storeToRefs(authStore)
562565
566+
const spaceStore = useSpacesStore()
567+
const { currentSpace } = storeToRefs(spaceStore)
568+
563569
const resourcesStore = useResourcesStore()
564-
const { areFileExtensionsShown, latestSelectedId, deleteQueue } = storeToRefs(resourcesStore)
570+
const { areFileExtensionsShown, latestSelectedId, selectedResources, deleteQueue } =
571+
storeToRefs(resourcesStore)
565572
566573
const dragItem = ref<Resource>()
567574
const ghostElement = ref()
@@ -572,6 +579,13 @@ export default defineComponent({
572579
() => capabilityStore.filesTags && width.value >= TAGS_MINIMUM_SCREEN_WIDTH
573580
)
574581
582+
const { actions: deleteActions } = useFileActionsDelete()
583+
const deleteHandler = unref(deleteActions)[0].handler
584+
const { bindKeyAction } = useKeyboardActions()
585+
bindKeyAction({ primary: Key.Del }, () => {
586+
deleteHandler({ space: unref(currentSpace), resources: unref(selectedResources) })
587+
})
588+
575589
const { actions: renameActions } = useFileActionsRename()
576590
const { actions: renameActionsSpace } = useSpaceActionsRename()
577591
const renameHandler = computed(() => unref(renameActions)[0].handler)

packages/web-pkg/src/composables/actions/files/useFileActionsDelete.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export const useFileActionsDelete = () => {
4343
name: 'delete',
4444
icon: 'delete-bin-5',
4545
label: () => $gettext('Delete'),
46+
shortcut: $gettext('Del'),
4647
handler: ({ space, resources }) => handler({ space, resources, deletePermanent: false }),
4748
isVisible: ({ space, resources }) => {
4849
if (

packages/web-pkg/src/composables/keyboardActions/useKeyboardActions.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ export enum Key {
1717
ArrowDown = 'ArrowDown',
1818
ArrowLeft = 'ArrowLeft',
1919
ArrowRight = 'ArrowRight',
20-
Esc = 'Escape'
20+
Esc = 'Escape',
21+
Del = 'Delete'
2122
}
2223

2324
export enum Modifier {

0 commit comments

Comments
 (0)