@@ -149,6 +149,12 @@ type RouteState = {
149149 query: Record <string , string >
150150}
151151
152+ type ValidationRouteName =
153+ | ' validation'
154+ | ' ValidationFile'
155+ | ' ValidationFileExternal'
156+ | ' ValidationFileShortUrl'
157+
152158type RouterState = {
153159 push: (location : unknown ) => void
154160 replace: (location : unknown ) => void
@@ -255,28 +261,31 @@ function toNumber(value: unknown): number | null {
255261 return typeof value === ' number' && Number .isFinite (value ) ? value : null
256262}
257263
258- const VALIDATION_STATUS_VALUES: readonly ValidationStatus [] = [
259- FILE_STATUS .DRAFT ,
260- FILE_STATUS .ABLE_TO_SIGN ,
261- FILE_STATUS .PARTIAL_SIGNED ,
262- FILE_STATUS .SIGNED ,
263- FILE_STATUS .DELETED ,
264- ]
265-
266264function isValidationStatus(value : unknown ): value is ValidationStatus {
267265 const normalizedValue = toNumber (value )
268- return normalizedValue !== null && VALIDATION_STATUS_VALUES .includes (normalizedValue as ValidationStatus )
266+ return normalizedValue === FILE_STATUS .DRAFT
267+ || normalizedValue === FILE_STATUS .ABLE_TO_SIGN
268+ || normalizedValue === FILE_STATUS .PARTIAL_SIGNED
269+ || normalizedValue === FILE_STATUS .SIGNED
270+ || normalizedValue === FILE_STATUS .DELETED
269271}
270272
271- const SIGNER_STATUS_VALUES: readonly SignerDetailRecord [' status' ][] = [
272- SIGN_REQUEST_STATUS .DRAFT ,
273- SIGN_REQUEST_STATUS .ABLE_TO_SIGN ,
274- SIGN_REQUEST_STATUS .SIGNED ,
275- ]
276-
277273function isSignerStatus(value : unknown ): value is SignerDetailRecord [' status' ] {
278274 const normalizedValue = toNumber (value )
279- return normalizedValue !== null && SIGNER_STATUS_VALUES .includes (normalizedValue as SignerDetailRecord [' status' ])
275+ return normalizedValue === SIGN_REQUEST_STATUS .DRAFT
276+ || normalizedValue === SIGN_REQUEST_STATUS .ABLE_TO_SIGN
277+ || normalizedValue === SIGN_REQUEST_STATUS .SIGNED
278+ }
279+
280+ function isValidationRouteName(value : RouteState [' name' ]): value is ValidationRouteName {
281+ return value === ' validation'
282+ || value === ' ValidationFile'
283+ || value === ' ValidationFileExternal'
284+ || value === ' ValidationFileShortUrl'
285+ }
286+
287+ function isSignedDocumentStatus(status : unknown ): boolean {
288+ return Number (status ) === FILE_STATUS .SIGNED
280289}
281290
282291function isString(value : unknown ): value is string {
@@ -962,11 +971,7 @@ function handleValidationSuccess(data: unknown) {
962971 setValidationError (t (' libresign' , ' Failed to validate document' ))
963972 return
964973 }
965- const routeName = route .value ?.name || ' '
966- const shouldUpdateRoute = routeName === ' validation'
967- || routeName === ' ValidationFile'
968- || routeName === ' ValidationFileExternal'
969- || routeName === ' ValidationFileShortUrl'
974+ const shouldUpdateRoute = isValidationRouteName (route .value .name )
970975 if (shouldUpdateRoute && route .value .params .uuid !== normalizedDocument .uuid ) {
971976 router .value .replace ({
972977 name: route .value .name ,
@@ -979,16 +984,16 @@ function handleValidationSuccess(data: unknown) {
979984 }
980985 document .value = normalizedDocument
981986 hasInfo .value = true
982- const isSignedStatus = (status : unknown ) => Number (status ) === FILE_STATUS .SIGNED
983- const isSignedDoc = isSignedStatus (document .value ?.status )
987+ const isSignedDoc = isSignedDocumentStatus (document .value ?.status )
984988 const allFilesSigned = Array .isArray (document .value ?.files )
985989 && document .value .files .length > 0
986- && document .value .files .every (file => isSignedStatus (file .status ))
990+ && document .value .files .every (file => isSignedDocumentStatus (file .status ))
987991 const signerCompleted = isCurrentSignerSigned ()
988- if (isSignedDoc || allFilesSigned || signerCompleted ) {
992+ const shouldSyncSignedState = isSignedDoc || allFilesSigned || signerCompleted
993+ if (shouldSyncSignedState ) {
989994 syncValidatedDocumentToFilesStore (normalizedDocument )
990995 }
991- if (( isSignedDoc || allFilesSigned || signerCompleted ) && (isAfterSigned .value || shouldFireAsyncConfetti .value )) {
996+ if (shouldSyncSignedState && (isAfterSigned .value || shouldFireAsyncConfetti .value )) {
992997 const capabilities = getCapabilities () as { libresign? : { config? : Record <string , unknown > } } | undefined
993998 if (capabilities ?.libresign ?.config ?.[' show-confetti' ] === true ) {
994999 const jsConfetti = new JSConfetti ()
@@ -1010,11 +1015,10 @@ async function refreshAfterAsyncSigning() {
10101015 return
10111016 }
10121017
1013- const isSignedStatus = (status : unknown ) => Number (status ) === FILE_STATUS .SIGNED
1014- const isSigned = isSignedStatus (document .value ?.status )
1018+ const isSigned = isSignedDocumentStatus (document .value ?.status )
10151019 const allFilesSigned = Array .isArray (document .value ?.files )
10161020 && document .value .files .length > 0
1017- && document .value .files .every (file => isSignedStatus (file .status ))
1021+ && document .value .files .every (file => isSignedDocumentStatus (file .status ))
10181022
10191023 if (isSigned || allFilesSigned ) {
10201024 return
@@ -1050,7 +1054,7 @@ function handleSigningError(message?: string) {
10501054}
10511055
10521056function isCurrentSignerSigned() {
1053- const signer = document .value ?.signers ? .find (row => row .me )
1057+ const signer = document .value ?.signers .find (row => row .me )
10541058 return !! signer ?.signed || Number (signer ?.status ) === SIGN_REQUEST_STATUS .SIGNED
10551059}
10561060
0 commit comments