@@ -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 }
@@ -288,25 +288,42 @@ defineOptions({
288288 : [])
289289 }
290290 }
291- lastResult = await this .signStore .submitSignature (filePayload , signer .sign_request_uuid , {
291+ const result = await this .signStore .submitSignature (filePayload , signer .sign_request_uuid , {
292292 documentId: this .signStore .document .id ,
293293 })
294- if (lastResult .status === ' signingInProgress' ) {
295- anySigningInProgress = true
294+ if (result .status === ' signed' ) {
295+ signedResult = {
296+ result ,
297+ fallbackUuid: signer .sign_request_uuid ,
298+ }
299+ }
300+ if (result .status === ' signingInProgress' && ! signingInProgressResult ) {
301+ signingInProgressResult = {
302+ result ,
303+ fallbackUuid: signer .sign_request_uuid ,
304+ }
296305 }
297306 }
298307
299- if (lastResult ?.status === ' signed' ) {
308+ if (signedResult ) {
309+ const signRequestUuid = typeof signedResult .result .data .file ?.uuid === ' string'
310+ && signedResult .result .data .file .uuid .length > 0
311+ ? signedResult .result .data .file .uuid
312+ : signedResult .fallbackUuid
300313 this .actionHandler .closeModal (methodConfig .modalCode || methodConfig .method || ' token' )
301314 this .sidebarStore .hideSidebar ()
302315 this .$emit (' signed' , {
303- ... lastResult .data ,
304- signRequestUuid: myEnvelopeSigners [ 0 ]. sign_request_uuid ,
316+ ... signedResult . result .data ,
317+ signRequestUuid ,
305318 })
306- } else if (anySigningInProgress ) {
319+ } else if (signingInProgressResult ) {
320+ const signRequestUuid = typeof signingInProgressResult .result .data .job ?.file ?.uuid === ' string'
321+ && signingInProgressResult .result .data .job .file .uuid .length > 0
322+ ? signingInProgressResult .result .data .job .file .uuid
323+ : signingInProgressResult .fallbackUuid
307324 this .actionHandler .closeModal (methodConfig .modalCode || methodConfig .method || ' token' )
308325 this .$emit (' signing-started' , {
309- signRequestUuid: myEnvelopeSigners [ 0 ]. sign_request_uuid ,
326+ signRequestUuid ,
310327 async: true ,
311328 })
312329 }
@@ -340,11 +357,15 @@ defineOptions({
340357 async: true ,
341358 })
342359 } else if (result .status === ' signed' ) {
360+ const signRequestUuid = typeof result .data .file ?.uuid === ' string'
361+ && result .data .file .uuid .length > 0
362+ ? result .data .file .uuid
363+ : this .signRequestUuid
343364 this .actionHandler .closeModal (methodConfig .modalCode || methodConfig .method || ' token' )
344365 this .sidebarStore .hideSidebar ()
345366 this .$emit (' signed' , {
346367 ... result .data ,
347- signRequestUuid: this . signRequestUuid ,
368+ signRequestUuid ,
348369 })
349370 }
350371 }
@@ -407,7 +428,21 @@ type SignDocumentFile = NonNullable<SignDocument['files']>[number]
407428
408429type SignResult = {
409430 status: ' signingInProgress' | ' signed' | ' unknown'
410- data: Record <string , unknown >
431+ data: SignResultData
432+ }
433+
434+ type SignResultData = {
435+ action? : number
436+ file? : {
437+ uuid? : string
438+ }
439+ job? : {
440+ status? : string
441+ file? : {
442+ uuid? : string
443+ }
444+ }
445+ [key : string ]: unknown
411446}
412447
413448type SubmitSignaturePayload = {
@@ -464,6 +499,21 @@ type SubmitSignatureCompatContext = {
464499 $emit: (event : string , payload : unknown ) => void
465500}
466501
502+ function getNavigationUuidFromSignResultData(
503+ data : SignResultData | null | undefined ,
504+ fallbackUuid : string ,
505+ ): string {
506+ if (typeof data ?.file ?.uuid === ' string' && data .file .uuid .length > 0 ) {
507+ return data .file .uuid
508+ }
509+
510+ if (typeof data ?.job ?.file ?.uuid === ' string' && data .job .file .uuid .length > 0 ) {
511+ return data .job .file .uuid
512+ }
513+
514+ return fallbackUuid
515+ }
516+
467517function isSignSubmissionError(error : unknown ): error is SignSubmissionError {
468518 return typeof error === ' object' && error !== null
469519}
@@ -680,8 +730,8 @@ let submitSignature = async (methodConfig: SignatureMethodConfig = {}) => {
680730 : []
681731
682732 if (myEnvelopeSigners .length > 0 ) {
683- let anySigningInProgress = false
684- let lastResult : SignResult | null = null
733+ let signingInProgressResult : { result : SignResult ; fallbackUuid : string } | null = null
734+ let signedResult : { result : SignResult ; fallbackUuid : string } | null = null
685735
686736 for (const signer of myEnvelopeSigners ) {
687737 const filePayload: SubmitSignaturePayload = { ... basePayload }
@@ -702,26 +752,42 @@ let submitSignature = async (methodConfig: SignatureMethodConfig = {}) => {
702752 : [])
703753 }
704754 }
705- lastResult = await signStore .submitSignature (filePayload , signer .sign_request_uuid , {
755+ const result = await signStore .submitSignature (filePayload , signer .sign_request_uuid , {
706756 documentId: signStore .document .id ,
707757 })
708- if (lastResult .status === ' signingInProgress' ) {
709- anySigningInProgress = true
758+ if (result .status === ' signed' ) {
759+ signedResult = {
760+ result ,
761+ fallbackUuid: signer .sign_request_uuid ,
762+ }
763+ }
764+
765+ if (result .status === ' signingInProgress' && ! signingInProgressResult ) {
766+ signingInProgressResult = {
767+ result ,
768+ fallbackUuid: signer .sign_request_uuid ,
769+ }
710770 }
711771 }
712772
713773 ensureServices ()
714- if (lastResult ?. status === ' signed ' ) {
774+ if (signedResult ) {
715775 actionHandler ! .closeModal (methodConfig .modalCode || methodConfig .method || ' token' )
716776 sidebarStore .hideSidebar ()
717777 emit (' signed' , {
718- ... lastResult .data ,
719- signRequestUuid: myEnvelopeSigners [0 ].sign_request_uuid ,
778+ ... signedResult .result .data ,
779+ signRequestUuid: getNavigationUuidFromSignResultData (
780+ signedResult .result .data ,
781+ signedResult .fallbackUuid ,
782+ ),
720783 })
721- } else if (anySigningInProgress ) {
784+ } else if (signingInProgressResult ) {
722785 actionHandler ! .closeModal (methodConfig .modalCode || methodConfig .method || ' token' )
723786 emit (' signing-started' , {
724- signRequestUuid: myEnvelopeSigners [0 ].sign_request_uuid ,
787+ signRequestUuid: getNavigationUuidFromSignResultData (
788+ signingInProgressResult .result .data ,
789+ signingInProgressResult .fallbackUuid ,
790+ ),
725791 async: true ,
726792 })
727793 }
@@ -764,7 +830,7 @@ let submitSignature = async (methodConfig: SignatureMethodConfig = {}) => {
764830 sidebarStore .hideSidebar ()
765831 emit (' signed' , {
766832 ... result .data ,
767- signRequestUuid: signRequestUuid .value ,
833+ signRequestUuid: getNavigationUuidFromSignResultData ( result . data , signRequestUuid .value ) ,
768834 })
769835 }
770836 }
0 commit comments