Skip to content

Commit e294cdc

Browse files
refactor(validation): type modification status flow
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
1 parent d21801c commit e294cdc

1 file changed

Lines changed: 40 additions & 17 deletions

File tree

src/views/Validation.vue

Lines changed: 40 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,18 @@ type ValidationStatusInfo = {
166166
id?: number
167167
label?: string
168168
}
169+
170+
const MODIFICATION_UNMODIFIED = 1
171+
const MODIFICATION_ALLOWED = 2
172+
const MODIFICATION_VIOLATION = 3
173+
174+
type ModificationValidationStatus =
175+
typeof MODIFICATION_UNMODIFIED
176+
| typeof MODIFICATION_ALLOWED
177+
| typeof MODIFICATION_VIOLATION
178+
169179
type ValidationModificationInfo = {
170-
status?: number
180+
status?: ModificationValidationStatus
171181
valid?: boolean
172182
}
173183
type ValidationDisplaySigner = SignerDetailRecord & {
@@ -310,10 +320,16 @@ function isValidationModificationInfo(value: unknown): value is ValidationModifi
310320
return false
311321
}
312322
313-
return isOptionalField(value, 'status', fieldValue => typeof fieldValue === 'number')
323+
return isOptionalField(value, 'status', isModificationValidationStatus)
314324
&& isOptionalField(value, 'valid', fieldValue => typeof fieldValue === 'boolean')
315325
}
316326
327+
function isModificationValidationStatus(value: unknown): value is ModificationValidationStatus {
328+
return value === MODIFICATION_UNMODIFIED
329+
|| value === MODIFICATION_ALLOWED
330+
|| value === MODIFICATION_VIOLATION
331+
}
332+
317333
function isValidationMetadataDimension(value: unknown): value is ValidationMetadataDimension {
318334
if (!isRecord(value)) {
319335
return false
@@ -850,29 +866,36 @@ function hasDocMdpInfo(signer: ValidationDisplaySigner) {
850866
return signer.docmdp || signer.modifications || signer.modification_validation
851867
}
852868
853-
function getModificationStatusIcon(signer: ValidationDisplaySigner) {
869+
function getModificationStatusVariant(signer: ValidationDisplaySigner): 'success' | 'error' | 'default' {
854870
if (!signer.modification_validation) {
855-
return null
871+
return 'default'
856872
}
873+
857874
const status = signer.modification_validation.status
858875
const valid = signer.modification_validation.valid
859876
860-
if (valid && status === 2) return mdiCheckCircle
861-
if (status === 1) return mdiCheckCircle
862-
if (status === 3) return mdiCancel
863-
return mdiHelpCircle
864-
}
877+
if ((valid && status === MODIFICATION_ALLOWED) || status === MODIFICATION_UNMODIFIED) {
878+
return 'success'
879+
}
865880
866-
function getModificationStatusClass(signer: ValidationDisplaySigner) {
867-
if (!signer.modification_validation) {
868-
return ''
881+
if (status === MODIFICATION_VIOLATION) {
882+
return 'error'
869883
}
870-
const status = signer.modification_validation.status
871-
const valid = signer.modification_validation.valid
872884
873-
if (valid && status === 2) return 'icon-success'
874-
if (status === 1) return 'icon-success'
875-
if (status === 3) return 'icon-error'
885+
return 'default'
886+
}
887+
888+
function getModificationStatusIcon(signer: ValidationDisplaySigner) {
889+
const variant = getModificationStatusVariant(signer)
890+
if (variant === 'success') return mdiCheckCircle
891+
if (variant === 'error') return mdiCancel
892+
return signer.modification_validation ? mdiHelpCircle : null
893+
}
894+
895+
function getModificationStatusClass(signer: ValidationDisplaySigner) {
896+
const variant = getModificationStatusVariant(signer)
897+
if (variant === 'success') return 'icon-success'
898+
if (variant === 'error') return 'icon-error'
876899
return ''
877900
}
878901

0 commit comments

Comments
 (0)