const APPROVAL_EVENT_TYPES = new Set(['audit', 'reject']);
|
|
export function isApprovalOpinionRequired(properties: any, eventType: string) {
|
return APPROVAL_EVENT_TYPES.has(eventType) && !!properties?.hasOpinion && !!properties?.opinionRequired;
|
}
|
|
export function hasApprovalOpinion(opinion: unknown) {
|
return hasValue(opinion);
|
}
|
|
export function hasValue(value: unknown) {
|
if (typeof value === 'string') return value.trim().length > 0;
|
if (Array.isArray(value)) return value.length > 0;
|
return value !== null && value !== undefined;
|
}
|
|
export function shouldOpenApprovalDrawer(values: unknown, properties: any, eventType: string, approvalForm: any) {
|
if (values) return false;
|
if (properties?.hasSign && !hasValue(approvalForm?.signImg)) return true;
|
const hasApprovalFormInput =
|
hasApprovalOpinion(approvalForm?.handleOpinion) || hasValue(approvalForm?.fileList) || approvalForm?.approvalField?.some((item) => hasValue(item.value));
|
if (hasApprovalFormInput) return false;
|
return isApprovalOpinionRequired(properties, eventType) || properties?.hasFile || properties?.hasApprovalField;
|
}
|