@@ -266,8 +266,8 @@ defineOptions({
266266 : []
267267
268268 if (myEnvelopeSigners .length > 0 ) {
269- let anySigningInProgress = false
270- let lastResult : SignResult | null = null
269+ let signingInProgressResult : { result : SignResult ; fallbackUuid : string } | null = null
270+ let signedResult : { result : SignResult ; fallbackUuid : string } | null = null
271271
272272 for (const signer of myEnvelopeSigners ) {
273273 const filePayload: SubmitSignaturePayload = { ... basePayload }
@@ -298,17 +298,25 @@ defineOptions({
298298 }
299299 }
300300
301- if (lastResult ?.status === ' signed' ) {
301+ if (signedResult ) {
302+ const signRequestUuid = typeof signedResult .result .data .file ?.uuid === ' string'
303+ && signedResult .result .data .file .uuid .length > 0
304+ ? signedResult .result .data .file .uuid
305+ : signedResult .fallbackUuid
302306 this .actionHandler .closeModal (methodConfig .modalCode || methodConfig .method || ' token' )
303307 this .sidebarStore .hideSidebar ()
304308 this .$emit (' signed' , {
305- ... lastResult .data ,
306- signRequestUuid: myEnvelopeSigners [ 0 ]. sign_request_uuid ,
309+ ... signedResult . result .data ,
310+ signRequestUuid ,
307311 })
308- } else if (anySigningInProgress ) {
312+ } else if (signingInProgressResult ) {
313+ const signRequestUuid = typeof signingInProgressResult .result .data .job ?.file ?.uuid === ' string'
314+ && signingInProgressResult .result .data .job .file .uuid .length > 0
315+ ? signingInProgressResult .result .data .job .file .uuid
316+ : signingInProgressResult .fallbackUuid
309317 this .actionHandler .closeModal (methodConfig .modalCode || methodConfig .method || ' token' )
310318 this .$emit (' signing-started' , {
311- signRequestUuid: myEnvelopeSigners [ 0 ]. sign_request_uuid ,
319+ signRequestUuid ,
312320 async: true ,
313321 })
314322 }
@@ -343,11 +351,15 @@ defineOptions({
343351 async: true ,
344352 })
345353 } else if (result .status === ' signed' ) {
354+ const signRequestUuid = typeof result .data .file ?.uuid === ' string'
355+ && result .data .file .uuid .length > 0
356+ ? result .data .file .uuid
357+ : this .signRequestUuid
346358 this .actionHandler .closeModal (methodConfig .modalCode || methodConfig .method || ' token' )
347359 this .sidebarStore .hideSidebar ()
348360 this .$emit (' signed' , {
349361 ... result .data ,
350- signRequestUuid: this . signRequestUuid ,
362+ signRequestUuid ,
351363 })
352364 }
353365 }
@@ -410,7 +422,21 @@ type SignDocumentFile = NonNullable<SignDocument['files']>[number]
410422
411423type SignResult = {
412424 status: ' signingInProgress' | ' signed' | ' unknown'
413- data: Record <string , unknown >
425+ data: SignResultData
426+ }
427+
428+ type SignResultData = {
429+ action? : number
430+ file? : {
431+ uuid? : string
432+ }
433+ job? : {
434+ status? : string
435+ file? : {
436+ uuid? : string
437+ }
438+ }
439+ [key : string ]: unknown
414440}
415441
416442type SubmitSignaturePayload = {
@@ -467,6 +493,21 @@ type SubmitSignatureCompatContext = {
467493 $emit: (event : string , payload : unknown ) => void
468494}
469495
496+ function getNavigationUuidFromSignResultData(
497+ data : SignResultData | null | undefined ,
498+ fallbackUuid : string ,
499+ ): string {
500+ if (typeof data ?.file ?.uuid === ' string' && data .file .uuid .length > 0 ) {
501+ return data .file .uuid
502+ }
503+
504+ if (typeof data ?.job ?.file ?.uuid === ' string' && data .job .file .uuid .length > 0 ) {
505+ return data .job .file .uuid
506+ }
507+
508+ return fallbackUuid
509+ }
510+
470511function isSignSubmissionError(error : unknown ): error is SignSubmissionError {
471512 return typeof error === ' object' && error !== null
472513}
@@ -683,8 +724,8 @@ let submitSignature = async (methodConfig: SignatureMethodConfig = {}) => {
683724 : []
684725
685726 if (myEnvelopeSigners .length > 0 ) {
686- let anySigningInProgress = false
687- let lastResult : SignResult | null = null
727+ let signingInProgressResult : { result : SignResult ; fallbackUuid : string } | null = null
728+ let signedResult : { result : SignResult ; fallbackUuid : string } | null = null
688729
689730 for (const signer of myEnvelopeSigners ) {
690731 const filePayload: SubmitSignaturePayload = { ... basePayload }
@@ -716,17 +757,23 @@ let submitSignature = async (methodConfig: SignatureMethodConfig = {}) => {
716757 }
717758
718759 ensureServices ()
719- if (lastResult ?. status === ' signed ' ) {
760+ if (signedResult ) {
720761 actionHandler ! .closeModal (methodConfig .modalCode || methodConfig .method || ' token' )
721762 sidebarStore .hideSidebar ()
722763 emit (' signed' , {
723- ... lastResult .data ,
724- signRequestUuid: myEnvelopeSigners [0 ].sign_request_uuid ,
764+ ... signedResult .result .data ,
765+ signRequestUuid: getNavigationUuidFromSignResultData (
766+ signedResult .result .data ,
767+ signedResult .fallbackUuid ,
768+ ),
725769 })
726- } else if (anySigningInProgress ) {
770+ } else if (signingInProgressResult ) {
727771 actionHandler ! .closeModal (methodConfig .modalCode || methodConfig .method || ' token' )
728772 emit (' signing-started' , {
729- signRequestUuid: myEnvelopeSigners [0 ].sign_request_uuid ,
773+ signRequestUuid: getNavigationUuidFromSignResultData (
774+ signingInProgressResult .result .data ,
775+ signingInProgressResult .fallbackUuid ,
776+ ),
730777 async: true ,
731778 })
732779 }
@@ -770,7 +817,7 @@ let submitSignature = async (methodConfig: SignatureMethodConfig = {}) => {
770817 sidebarStore .hideSidebar ()
771818 emit (' signed' , {
772819 ... result .data ,
773- signRequestUuid: signRequestUuid .value ,
820+ signRequestUuid: getNavigationUuidFromSignResultData ( result . data , signRequestUuid .value ) ,
774821 })
775822 }
776823 }
0 commit comments