diff --git a/packages/frontend-2/components/viewer/anchored-point/NewThread.vue b/packages/frontend-2/components/viewer/anchored-point/NewThread.vue
index 86e7017ec..ac723109c 100644
--- a/packages/frontend-2/components/viewer/anchored-point/NewThread.vue
+++ b/packages/frontend-2/components/viewer/anchored-point/NewThread.vue
@@ -30,18 +30,30 @@
-
-
+
onSubmit()"
@keydown="onKeyDownHandler"
@@ -63,7 +75,7 @@
/>
-
+
@@ -84,6 +96,10 @@ import {
import { useMixpanel } from '~~/lib/core/composables/mp'
import { useThreadUtilities, useSelectionUtilities } from '~~/lib/viewer/composables/ui'
import { useEmbed } from '~/lib/viewer/composables/setup/embed'
+import { useServerFileUploadLimit } from '~~/lib/common/composables/serverInfo'
+import { UniqueFileTypeSpecifier } from '~~/lib/core/helpers/file'
+import { acceptedFileExtensions } from '@speckle/shared/blobs'
+import type { UploadableFileItem } from '@speckle/ui-components'
const { isEnabled: isEmbedEnabled } = useEmbed()
@@ -101,12 +117,29 @@ const props = defineProps<{
const { onKeyDownHandler, updateIsTyping, pauseAutomaticUpdates } =
useIsTypingUpdateEmitter()
const { closeAllThreads, open } = useThreadUtilities()
+const { maxSizeInBytes } = useServerFileUploadLimit()
-const editor = ref(null as Nullable<{ openFilePicker: () => void }>)
+const editor = ref(
+ null as Nullable<{
+ openFilePicker: () => void
+ onFilesSelected: (payload: { files: UploadableFileItem[] }) => void
+ }>
+)
+const uploadZone = ref(null as Nullable<{ triggerPicker: () => void }>)
const commentValue = ref({ doc: undefined, attachments: undefined })
const threadContainer = ref(null as Nullable)
const isPostingNewThread = ref(false)
+const acceptValue = [
+ UniqueFileTypeSpecifier.AnyImage,
+ UniqueFileTypeSpecifier.AnyVideo,
+ ...acceptedFileExtensions.map((fileExtension) => `.${fileExtension}`)
+].join(',')
+
+const onFilesSelected = (payload: { files: UploadableFileItem[] }) => {
+ editor.value?.onFilesSelected(payload)
+}
+
// const { style } = useExpandedThreadResponsiveLocation({
// threadContainer,
// width: 320
@@ -174,7 +207,7 @@ const onSubmit = (comment?: CommentEditorValue) => {
}
const trackAttachAndOpenFilePicker = () => {
- editor.value?.openFilePicker()
+ uploadZone.value?.triggerPicker()
mp.track('Comment Action', { type: 'action', name: 'attach' })
}
diff --git a/packages/frontend-2/components/viewer/anchored-point/thread/NewReply.vue b/packages/frontend-2/components/viewer/anchored-point/thread/NewReply.vue
index 0af0a0417..0b835f2a2 100644
--- a/packages/frontend-2/components/viewer/anchored-point/thread/NewReply.vue
+++ b/packages/frontend-2/components/viewer/anchored-point/thread/NewReply.vue
@@ -1,32 +1,46 @@