Skip to content

Commit f04e4f7

Browse files
committed
refactor it
1 parent df7984a commit f04e4f7

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

src/hooks/useCheckedKeys.ts

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,32 @@ import type { DataEntity } from 'rc-tree/lib/interface';
33
import { conductCheck } from 'rc-tree/lib/utils/conductUtil';
44
import type { LabeledValueType, SafeKey } from '../interface';
55

6-
export default (
6+
const useCheckedKeys = (
77
rawLabeledValues: LabeledValueType[],
88
rawHalfCheckedValues: LabeledValueType[],
99
treeConduction: boolean,
1010
keyEntities: Record<SafeKey, DataEntity>,
11-
) =>
12-
React.useMemo(() => {
13-
let checkedKeys: SafeKey[] = rawLabeledValues.map(({ value }) => value);
14-
let halfCheckedKeys: SafeKey[] = rawHalfCheckedValues.map(({ value }) => value);
11+
) => {
12+
return React.useMemo(() => {
13+
const extractValues = (values: LabeledValueType[]): SafeKey[] =>
14+
values.map(({ value }) => value);
15+
16+
const checkedKeys = extractValues(rawLabeledValues);
17+
const halfCheckedKeys = extractValues(rawHalfCheckedValues);
1518

1619
const missingValues = checkedKeys.filter(key => !keyEntities[key]);
1720

21+
let finalCheckedKeys = checkedKeys;
22+
let finalHalfCheckedKeys = halfCheckedKeys;
23+
1824
if (treeConduction) {
19-
({ checkedKeys, halfCheckedKeys } = conductCheck(checkedKeys, true, keyEntities));
25+
const conductResult = conductCheck(checkedKeys, true, keyEntities);
26+
finalCheckedKeys = conductResult.checkedKeys;
27+
finalHalfCheckedKeys = conductResult.halfCheckedKeys;
2028
}
2129

22-
return [
23-
// Checked keys should fill with missing keys which should de-duplicated
24-
Array.from(new Set([...missingValues, ...checkedKeys])),
25-
// Half checked keys
26-
halfCheckedKeys,
27-
];
30+
return [Array.from(new Set([...missingValues, ...finalCheckedKeys])), finalHalfCheckedKeys];
2831
}, [rawLabeledValues, rawHalfCheckedValues, treeConduction, keyEntities]);
32+
};
33+
34+
export default useCheckedKeys;

0 commit comments

Comments
 (0)