import type { FillFieldValue } from './types';
|
|
export interface FieldConflict {
|
baseValue: FillFieldValue;
|
documentValue: FillFieldValue;
|
draftValue: FillFieldValue;
|
}
|
|
export interface DocumentReconciliation {
|
conflict?: FieldConflict;
|
documentValue: FillFieldValue;
|
draftValue: FillFieldValue;
|
}
|
|
export function reconcileDocumentValue(
|
baseValue: FillFieldValue,
|
draftValue: FillFieldValue,
|
documentValue: FillFieldValue,
|
): DocumentReconciliation {
|
if (draftValue === baseValue || draftValue === documentValue) {
|
return { documentValue, draftValue: documentValue };
|
}
|
if (documentValue === baseValue) {
|
return { documentValue, draftValue };
|
}
|
return {
|
conflict: { baseValue, documentValue, draftValue },
|
documentValue,
|
draftValue,
|
};
|
}
|