diff --git a/client/package-lock.json b/client/package-lock.json index 67137da9e5c..07a89122c2e 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -26,7 +26,7 @@ "@types/luxon": "^3.3.4", "axios": "^1.7.4", "luxon": "^3.4.4", - "megashark-lib": "git+https://github.com/Scille/megashark-lib.git#7f7201e1895f328a0af0de3e9b2544782a270024", + "megashark-lib": "git+https://github.com/Scille/megashark-lib.git#cec6e1c2e2a8e0628eae8627d98bf70c6c15fb48", "qrcode-vue3": "^1.6.8", "uuid": "^9.0.1", "vue": "^3.3.8", @@ -9366,8 +9366,8 @@ }, "node_modules/megashark-lib": { "version": "0.0.1", - "resolved": "git+ssh://git@github.com/Scille/megashark-lib.git#7f7201e1895f328a0af0de3e9b2544782a270024", - "integrity": "sha512-cBvsgTZRwo/B+w/toPq+pnfkwRjSQDc0MHg5P/LObUJpqBA3muFABbIDrrgTTQzMo08HC18CzB26r7xT8t2EAQ==", + "resolved": "git+ssh://git@github.com/Scille/megashark-lib.git#cec6e1c2e2a8e0628eae8627d98bf70c6c15fb48", + "integrity": "sha512-CEP2Tz6MrhYl0uhNdgj2nZ9Nh8/7Z3ZSre3CMKc7QHz9K3bivHIoSdJosDAEYwhXCIlIaBnUJKF32yyzrBbxUw==", "dependencies": { "@ionic/vue": "^7.0.0", "@stripe/stripe-js": "^4.0.0", diff --git a/client/package.json b/client/package.json index 9a292d07456..d1ded5a344f 100644 --- a/client/package.json +++ b/client/package.json @@ -53,7 +53,7 @@ "@types/luxon": "^3.3.4", "axios": "^1.7.4", "luxon": "^3.4.4", - "megashark-lib": "git+https://github.com/Scille/megashark-lib.git#7f7201e1895f328a0af0de3e9b2544782a270024", + "megashark-lib": "git+https://github.com/Scille/megashark-lib.git#cec6e1c2e2a8e0628eae8627d98bf70c6c15fb48", "qrcode-vue3": "^1.6.8", "uuid": "^9.0.1", "vue": "^3.3.8", diff --git a/client/src/components/files/FileCard.vue b/client/src/components/files/FileCard.vue index ef15584e945..de839290db0 100644 --- a/client/src/components/files/FileCard.vue +++ b/client/src/components/files/FileCard.vue @@ -17,6 +17,7 @@ :current-path="currentPath" @files-added="$emit('filesAdded', $event)" :is-reader="isWorkspaceReader" + @drop-as-reader="$emit('dropAsReader')" >
@@ -101,6 +102,7 @@ const emits = defineEmits<{ (e: 'click', event: Event, entry: EntryModel): void; (e: 'menuClick', event: Event, entry: EntryModel, onFinished: () => void): void; (e: 'filesAdded', imports: FileImportTuple[]): void; + (e: 'dropAsReader'): void; }>(); defineExpose({ diff --git a/client/src/components/files/FileDropZone.vue b/client/src/components/files/FileDropZone.vue index 98e470f98c8..b9484f7e71d 100644 --- a/client/src/components/files/FileDropZone.vue +++ b/client/src/components/files/FileDropZone.vue @@ -34,8 +34,7 @@ import { DocumentImport, MsImage } from 'megashark-lib'; import { FileImportTuple, getFilesFromDrop } from '@/components/files/utils'; import { FsPath } from '@/parsec'; import { IonLabel } from '@ionic/vue'; -import { computed, inject, onMounted, onUnmounted, ref } from 'vue'; -import { Information, InformationLevel, InformationManager, InformationManagerKey, PresentationMode } from '@/services/informationManager'; +import { computed, onMounted, onUnmounted, ref } from 'vue'; defineExpose({ reset, @@ -50,10 +49,10 @@ const props = defineProps<{ const emits = defineEmits<{ (e: 'filesAdded', imports: FileImportTuple[]): void; + (e: 'dropAsReader'): void; }>(); const dragEnterCount = ref(0); -const informationManager: InformationManager = inject(InformationManagerKey)!; const isActive = computed(() => { return !props.disabled && !props.isReader && dragEnterCount.value > 0; @@ -77,19 +76,13 @@ onUnmounted(() => { async function onDrop(event: DragEvent): Promise { if (props.isReader) { - await informationManager.present( - new Information({ - message: 'FoldersPage.ImportFile.noDropForReader', - level: InformationLevel.Error, - }), - PresentationMode.Toast, - ); + event.stopPropagation(); + emits('dropAsReader'); return; } if (props.disabled) { return; } - event.stopPropagation(); dragEnterCount.value = 0; const imports = await getFilesFromDrop(event, props.currentPath); if (imports.length) { diff --git a/client/src/components/files/FileGridDisplay.vue b/client/src/components/files/FileGridDisplay.vue index 474d039f926..8f8a948b6ad 100644 --- a/client/src/components/files/FileGridDisplay.vue +++ b/client/src/components/files/FileGridDisplay.vue @@ -7,6 +7,7 @@ :show-drop-message="true" @files-added="$emit('filesAdded', $event)" :is-reader="ownRole === WorkspaceRole.Reader" + @drop-as-reader="$emit('dropAsReader')" >
void): void; (e: 'globalMenuClick', event: Event): void; (e: 'filesAdded', imports: FileImportTuple[]): void; + (e: 'dropAsReader'): void; }>(); onMounted(async () => { diff --git a/client/src/components/files/FileListDisplay.vue b/client/src/components/files/FileListDisplay.vue index 8d14d216077..bf7bb2e9f92 100644 --- a/client/src/components/files/FileListDisplay.vue +++ b/client/src/components/files/FileListDisplay.vue @@ -8,6 +8,7 @@ @files-added="$emit('filesAdded', $event)" :show-drop-message="true" :is-reader="ownRole === WorkspaceRole.Reader" + @drop-as-reader="$emit('dropAsReader')" >
void): void; (e: 'globalMenuClick', event: Event): void; (e: 'filesAdded', imports: FileImportTuple[]): void; + (e: 'dropAsReader'): void; }>(); const fileDropZoneRef = ref(); diff --git a/client/src/components/files/FileListItem.vue b/client/src/components/files/FileListItem.vue index 123e997856b..55cf70fa888 100644 --- a/client/src/components/files/FileListItem.vue +++ b/client/src/components/files/FileListItem.vue @@ -2,11 +2,12 @@