function validateBatchStates(decisions: Map<string, ApprovalState>): ValidationResult {
const states = Array.from(decisions.values());
const hasAbort = states.includes('ABORTED_WITH_FEEDBACK');
const hasOtherStates = states.some(state => state !== 'ABORTED_WITH_FEEDBACK');
if (hasAbort && hasOtherStates) {
return {
valid: false,
error: 'Cannot mix ABORTED_WITH_FEEDBACK with APPROVED or DENIED states'
};
}
return { valid: true };
}
function onSubmitBatch(batchId: string) {
const decisions = getBatchDecisions(batchId);
const validation = validateBatchStates(decisions);
if (!validation.valid) {
showError(validation.error);
return;
}
submitBatch(batchId, decisions);
}