Skip to content

Commit 1510b78

Browse files
committed
refactor: cleanup
1 parent d72d214 commit 1510b78

2 files changed

Lines changed: 23 additions & 137 deletions

File tree

packages/web-app-files/src/components/AppBar/PasteActions.vue

Lines changed: 0 additions & 136 deletions
This file was deleted.

packages/web-app-files/src/views/spaces/GenericSpace.vue

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,10 @@ import {
135135
useKeyboardActions,
136136
useRoute,
137137
useRouteQuery,
138-
FolderLoaderOptions
138+
FolderLoaderOptions,
139+
useClipboardStore,
140+
useService,
141+
UppyService
139142
} from '@opencloud-eu/web-pkg'
140143
import FilesViewWrapper from '../../components/FilesViewWrapper.vue'
141144
import ListInfo from '../../components/FilesList/ListInfo.vue'
@@ -156,6 +159,7 @@ import {
156159
import { storeToRefs } from 'pinia'
157160
import { folderViewsFolderExtensionPoint } from '../../extensionPoints'
158161
import ListHeader from '../../components/FilesList/ListHeader.vue'
162+
import { useEventListener } from '@vueuse/core'
159163
160164
const props = defineProps<{
161165
space?: SpaceResource
@@ -174,6 +178,8 @@ const { startWorker } = usePasteWorker()
174178
const { breadcrumbsFromPath, concatBreadcrumbs } = useBreadcrumbsFromPath()
175179
const { openWithDefaultApp } = useOpenWithDefaultApp()
176180
const { triggerDefaultAction } = useFileActions()
181+
const clipboardStore = useClipboardStore()
182+
const uppyService = useService<UppyService>('$uppyService')
177183
178184
const space = computed(() => props.space)
179185
@@ -511,4 +517,20 @@ watch(
511517
performLoaderTask(true)
512518
}
513519
)
520+
521+
useEventListener(document, 'paste', (event: ClipboardEvent) => {
522+
// Ignore file in clipboard if there are already files from OpenCloud in the clipboard
523+
if (clipboardStore.resources.length || !unref(canUpload)) {
524+
return
525+
}
526+
// Browsers only allow single files to be pasted for security reasons
527+
const items = event.clipboardData.items
528+
const fileItem = [...items].find((i) => i.kind === 'file')
529+
if (!fileItem) {
530+
return
531+
}
532+
const file = fileItem.getAsFile()
533+
uppyService.addFiles([file])
534+
event.preventDefault()
535+
})
514536
</script>

0 commit comments

Comments
 (0)