刘光辉
9 小时以前 cf11e63b659afcc9792ab3e395f1b45d844431a8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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,
  };
}