Skip to content

Commit 4a1922b

Browse files
committed
handle proximity
1 parent 4a6f049 commit 4a1922b

2 files changed

Lines changed: 19 additions & 7 deletions

File tree

src/pdfdatatable/SelectCsvElement.jsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ export default function SelectCsvElement({ setActiveStep, files, setCsvLines })
107107
isOutOfProximity = true;
108108
}
109109

110+
for (const csvLine of csvLines) {
111+
console.log(csvLine.join("|"));
112+
113+
}
110114
saveCsv(csvLines);
111115
}
112116

@@ -175,7 +179,7 @@ export default function SelectCsvElement({ setActiveStep, files, setCsvLines })
175179

176180
if (xIntersect(headers, headerIndex, line[columnIndex])) {
177181
// concatenate the text
178-
csvLine[headerIndex] = csvLine[headerIndex] ? csvLine[headerIndex] : "" + line[columnIndex].textContent;
182+
csvLine[headerIndex] = csvLine[headerIndex] ? csvLine[headerIndex] + line[columnIndex].textContent : "" + line[columnIndex].textContent;
179183
line[columnIndex].setAttribute("column", headerIndex);
180184
columnIndex++;
181185
} else {
@@ -184,6 +188,10 @@ export default function SelectCsvElement({ setActiveStep, files, setCsvLines })
184188
}
185189
}
186190

191+
if (csvLine.length < 1) {
192+
return false;
193+
}
194+
187195
// fill empty columns
188196
for (let i = 0; i < headers.length; i++) {
189197
if (!csvLine[i]) {

src/utils.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,23 @@ export function loadCsv() {
1010

1111
export function xIntersect(headers, headerIndex, element) {
1212

13+
const rect2 = element.getBoundingClientRect();
14+
const rect2Start = rect2.x;
15+
const rect2End = rect2.x + rect2.width;
16+
1317
const rect1 = headers[headerIndex].getBoundingClientRect();
1418
const rect1Start = rect1.x;
1519
let rect1End = 0;
1620
if (headerIndex === headers.length - 1) {
1721
rect1End = rect1.x + rect1.width;
1822
} else {
19-
const next = headers[headerIndex + 1].getBoundingClientRect();
20-
rect1End = next.x - 1;
21-
}
23+
const rect3 = headers[headerIndex + 1].getBoundingClientRect();
24+
if (rect2End >= rect3.x) {
25+
return false;
26+
}
2227

23-
const rect2 = element.getBoundingClientRect();
24-
const rect2Start = rect2.x;
25-
const rect2End = rect2.x + rect2.width;
28+
rect1End = rect3.x - 1;
29+
}
2630

2731
// [rect1]
2832
// [rect2]

0 commit comments

Comments
 (0)