diff --git a/packages/web-app-files/src/composables/keyboardActions/useKeyboardFileNavigation.ts b/packages/web-app-files/src/composables/keyboardActions/useKeyboardFileNavigation.ts index e5f07bf2c3e..551b704c47c 100644 --- a/packages/web-app-files/src/composables/keyboardActions/useKeyboardFileNavigation.ts +++ b/packages/web-app-files/src/composables/keyboardActions/useKeyboardFileNavigation.ts @@ -28,6 +28,9 @@ export const useKeyboardFileNavigation = ( ) keyActions.bindKeyAction({ primary: Key.Space }, () => { + if (!unref(latestSelectedId)) { + return + } resourcesStore.toggleSelection(unref(latestSelectedId)) }) @@ -181,6 +184,10 @@ export const useKeyboardFileNavigation = ( } const getVerticalProperties = (viewDirection: Direction) => { + if (!unref(latestSelectedId)) { + return {} + } + const elementsInRow = getElementsInRow() if (elementsInRow === -1) { return {} diff --git a/packages/web-app-files/src/views/Favorites.vue b/packages/web-app-files/src/views/Favorites.vue index 09d64f9950d..ab1811fe035 100644 --- a/packages/web-app-files/src/views/Favorites.vue +++ b/packages/web-app-files/src/views/Favorites.vue @@ -137,12 +137,18 @@ import { useRouteQuery, getLastModifiedFilterOptions, getMediaTypeFilterOptions, - SearchMediaTypeFilterOption + SearchMediaTypeFilterOption, + useKeyboardActions } from '@opencloud-eu/web-pkg' import QuickActions from '../components/FilesList/QuickActions.vue' import ListInfo from '../components/FilesList/ListInfo.vue' import FilesViewWrapper from '../components/FilesViewWrapper.vue' import { useResourcesViewDefaults } from '../composables' +import { + useKeyboardFileNavigation, + useKeyboardFileMouseActions, + useKeyboardFileActions +} from '../composables/keyboardActions' import { folderViewsFavoritesExtensionPoint } from '../extensionPoints' import { useGettext } from 'vue3-gettext' import { v4 as uuidV4 } from 'uuid' @@ -212,6 +218,11 @@ const { folderViewExtensionPoint: folderViewsFavoritesExtensionPoint }) +const keyActions = useKeyboardActions() +useKeyboardFileNavigation(keyActions, paginatedResources, viewMode) +useKeyboardFileMouseActions(keyActions, viewMode) +useKeyboardFileActions(keyActions) + const { triggerDefaultAction } = useFileActions() const { loadPreview, dropPreview } = useLoadPreview(viewMode) diff --git a/packages/web-app-files/src/views/shares/SharedViaLink.vue b/packages/web-app-files/src/views/shares/SharedViaLink.vue index 8027861009e..48610deb9f9 100644 --- a/packages/web-app-files/src/views/shares/SharedViaLink.vue +++ b/packages/web-app-files/src/views/shares/SharedViaLink.vue @@ -81,11 +81,16 @@ import { AppBar, Pagination, useGetMatchingSpace, - ContextActions + ContextActions, + useKeyboardActions } from '@opencloud-eu/web-pkg' import ListInfo from '../../components/FilesList/ListInfo.vue' import FilesViewWrapper from '../../components/FilesViewWrapper.vue' import { useResourcesViewDefaults } from '../../composables' +import { + useKeyboardFileNavigation, + useKeyboardFileMouseActions +} from '../../composables/keyboardActions' import { computed, onMounted, ref, unref } from 'vue' import SharesNavigation from '../../../src/components/AppBar/SharesNavigation.vue' import { OutgoingShareResource } from '@opencloud-eu/web-client' @@ -140,6 +145,10 @@ const filteredItems = computed(() => { return unref(paginatedResources) }) +const keyActions = useKeyboardActions() +useKeyboardFileNavigation(keyActions, filteredItems, viewMode) +useKeyboardFileMouseActions(keyActions, viewMode) + resourcesStore.$onAction((action) => { if (action.name !== 'updateResourceField') { return diff --git a/packages/web-app-files/src/views/shares/SharedWithMe.vue b/packages/web-app-files/src/views/shares/SharedWithMe.vue index aef3494ecb6..1ecedf15e5c 100644 --- a/packages/web-app-files/src/views/shares/SharedWithMe.vue +++ b/packages/web-app-files/src/views/shares/SharedWithMe.vue @@ -89,6 +89,10 @@