126126 </template >
127127 </NcButton >
128128
129+ <div v-show =" !isUploading && isAssembling" class =" upload-picker__loading" >
130+ <NcLoadingIcon />
131+ <p >{{ t('Processing...') }}</p >
132+ </div >
133+
129134 <!-- Hidden files picker input -->
130135 <input ref =" input"
131136 :accept =" accept?.join?.(', ')"
@@ -144,14 +149,15 @@ import type { Upload } from '../upload.ts'
144149
145150import { Folder , NewMenuEntryCategory , getNewFileMenuEntries } from ' @nextcloud/files'
146151import makeEta from ' simple-eta'
147- import Vue from ' vue'
152+ import { defineComponent } from ' vue'
148153
149154import NcActionButton from ' @nextcloud/vue/dist/Components/NcActionButton.js'
150155import NcActionCaption from ' @nextcloud/vue/dist/Components/NcActionCaption.js'
151156import NcActionSeparator from ' @nextcloud/vue/dist/Components/NcActionSeparator.js'
152157import NcActions from ' @nextcloud/vue/dist/Components/NcActions.js'
153158import NcButton from ' @nextcloud/vue/dist/Components/NcButton.js'
154159import NcIconSvgWrapper from ' @nextcloud/vue/dist/Components/NcIconSvgWrapper.js'
160+ import NcLoadingIcon from ' @nextcloud/vue/dist/Components/NcLoadingIcon.js'
155161import NcProgressBar from ' @nextcloud/vue/dist/Components/NcProgressBar.js'
156162
157163import IconCancel from ' vue-material-design-icons/Cancel.vue'
@@ -166,7 +172,7 @@ import { t } from '../utils/l10n.ts'
166172import logger from ' ../utils/logger.ts'
167173import { uploadConflictHandler } from ' ../utils/conflicts.ts'
168174
169- export default Vue . extend ({
175+ export default defineComponent ({
170176 name: ' UploadPicker' ,
171177
172178 components: {
@@ -180,6 +186,7 @@ export default Vue.extend({
180186 NcActions ,
181187 NcButton ,
182188 NcIconSvgWrapper ,
189+ NcLoadingIcon ,
183190 NcProgressBar ,
184191 },
185192
@@ -293,7 +300,7 @@ export default Vue.extend({
293300 return this .queue ?.filter ((upload : Upload ) => upload .status === UploadStatus .FAILED ).length !== 0
294301 },
295302 isUploading() {
296- return this .queue ?.length > 0
303+ return this .queue ?.filter (( upload : Upload ) => upload . status === UploadStatus . UPLOADING ). length !== 0
297304 },
298305 isAssembling() {
299306 return this .queue ?.filter ((upload : Upload ) => upload .status === UploadStatus .ASSEMBLING ).length !== 0
@@ -394,7 +401,6 @@ export default Vue.extend({
394401 return Array .isArray (this .content ) ? this .content : await this .content (path )
395402 },
396403
397-
398404 /**
399405 * Start uploading
400406 */
@@ -507,6 +513,12 @@ $progress-width: 200px;
507513 & --paused & __progress {
508514 animation : breathing 3s ease-out infinite normal ;
509515 }
516+
517+ & __loading {
518+ display : flex ;
519+ margin-left : 8px ;
520+ gap : 8px ;
521+ }
510522}
511523
512524@keyframes breathing {
0 commit comments