Skip to content

Commit f0a39cc

Browse files
xingyan95GreatZPP
andauthored
fix(CodeReview): diff解析失败时增加判空操作 (DevCloudFE#1731)
* fix(CodeReview): diff解析失败时增加判空操作 * fix: 修复中 * fix(CodeReview): 增加判空操作 * fix(CodeReview): 还原demo --------- Co-authored-by: GreatZP <greatzp@greatzp.cn>
1 parent 3a1e1dd commit f0a39cc

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

packages/devui-vue/devui/code-review/src/composables/use-code-review-expand.ts

+14-4
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,15 @@ export function useCodeReviewExpand(reviewContentRef: Ref<HTMLElement>, props: C
4545
}
4646

4747
const loadMoreLine = trNodes[0].cloneNode(true) as HTMLTableRowElement;
48-
loadMoreLine.children[0].removeChild(loadMoreLine.children[0].children[0]);
48+
if (loadMoreLine.children[0].children[0]) {
49+
loadMoreLine.children[0].removeChild(loadMoreLine.children[0].children[0]);
50+
}
4951
(loadMoreLine.children[1] as HTMLElement).innerText = '';
52+
const res = updateLineNumberInDatasetForDoubleColumn(loadMoreLine, expandThreshold.value, 'bottom');
53+
if (!res) {
54+
return;
55+
}
5056
trNodes[0].parentElement?.appendChild(loadMoreLine);
51-
updateLineNumberInDatasetForDoubleColumn(loadMoreLine, expandThreshold.value, 'bottom');
5257
attachExpandUpDownButton(loadMoreLine.children[0] as HTMLElement, 'down');
5358
};
5459

@@ -139,10 +144,15 @@ export function useCodeReviewExpand(reviewContentRef: Ref<HTMLElement>, props: C
139144
}
140145

141146
const loadMoreLine = trNodes[0].cloneNode(true) as HTMLTableRowElement;
142-
loadMoreLine.children[0].removeChild(loadMoreLine.children[0].children[0]);
147+
if (loadMoreLine.children[0].children[0]) {
148+
loadMoreLine.children[0].removeChild(loadMoreLine.children[0].children[0]);
149+
}
143150
(loadMoreLine.children[1] as HTMLElement).innerText = '';
151+
const res = updateLineNumberInDataset(loadMoreLine, expandThreshold.value, 'bottom');
152+
if (!res) {
153+
return;
154+
}
144155
trNodes[0].parentElement?.appendChild(loadMoreLine);
145-
updateLineNumberInDataset(loadMoreLine, expandThreshold.value, 'bottom');
146156
attachExpandUpDownButton(loadMoreLine.children[0] as HTMLElement, 'down');
147157
};
148158

packages/devui-vue/devui/code-review/src/utils.ts

+12-4
Original file line numberDiff line numberDiff line change
@@ -226,9 +226,9 @@ export function updateLineNumberInDatasetForDoubleColumn(
226226
prevR = Math.max(nextR - expandThreshold + 1, 1);
227227
} else if (position === 'bottom') {
228228
const prevLineNode = trNode.previousElementSibling as HTMLElement;
229-
prevL = parseInt((prevLineNode.children[0] as HTMLElement).innerText) + 1;
229+
prevL = parseInt((prevLineNode?.children[0] as HTMLElement)?.innerText) + 1;
230230
nextL = prevL + expandThreshold - 1;
231-
prevR = parseInt((prevLineNode.children[2] as HTMLElement).innerText) + 1;
231+
prevR = parseInt((prevLineNode?.children[2] as HTMLElement)?.innerText) + 1;
232232
nextR = prevR + expandThreshold - 1;
233233
} else {
234234
const prevLineNode = trNode.previousElementSibling as HTMLElement;
@@ -244,7 +244,11 @@ export function updateLineNumberInDatasetForDoubleColumn(
244244
updateExpandUpDownButton(trNode);
245245
}
246246
}
247+
if (isNaN(prevL) || isNaN(prevR) || isNaN(nextL) || isNaN(nextR)) {
248+
return false;
249+
}
247250
setLineNumberInDataset(trNode, prevL, prevR, nextL, nextR);
251+
return true;
248252
}
249253

250254
/*
@@ -272,9 +276,9 @@ export function updateLineNumberInDataset(
272276
prevR = Math.max(nextR - expandThreshold + 1, 1);
273277
} else if (position === 'bottom') {
274278
const prevLineNode = trNode.previousElementSibling as HTMLElement;
275-
prevL = parseInt((prevLineNode.children[0].children[0] as HTMLElement).innerText) + 1;
279+
prevL = parseInt((prevLineNode?.children[0].children?.[0] as HTMLElement)?.innerText) + 1;
276280
nextL = prevL + expandThreshold - 1;
277-
prevR = parseInt((prevLineNode.children[0].children[1] as HTMLElement).innerText) + 1;
281+
prevR = parseInt((prevLineNode?.children[0].children?.[1] as HTMLElement)?.innerText) + 1;
278282
nextR = prevR + expandThreshold - 1;
279283
} else {
280284
const prevLineNode = trNode.previousElementSibling as HTMLElement;
@@ -290,7 +294,11 @@ export function updateLineNumberInDataset(
290294
updateExpandUpDownButton(trNode);
291295
}
292296
}
297+
if (isNaN(prevL) || isNaN(prevR) || isNaN(nextL) || isNaN(nextR)) {
298+
return false;
299+
}
293300
setLineNumberInDataset(trNode, prevL, prevR, nextL, nextR);
301+
return true;
294302
}
295303

296304
/*

0 commit comments

Comments
 (0)