Skip to content

Commit bf638be

Browse files
committed
fix(AnalyticalTable): fix horizontal scrolling in rtl reading direction (#5144)
Fixes #5094
1 parent 908b74d commit bf638be

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

packages/main/src/components/AnalyticalTable/AnalyticalTable.cy.tsx

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,31 @@ describe('AnalyticalTable', () => {
280280
cy.get('@scroll').should('have.been.called');
281281
});
282282

283+
it('horizontal scrolling - rtl', () => {
284+
function generateMockData() {
285+
const data = [];
286+
287+
for (let i = 1; i <= 200; i++) {
288+
const row = {};
289+
for (let j = 1; j <= 200; j++) {
290+
row[`column${j}`] = `${i}-${j}`;
291+
}
292+
data.push(row);
293+
}
294+
295+
return data;
296+
}
297+
298+
const data = generateMockData();
299+
const columns = new Array(100)
300+
.fill('')
301+
.map((_, i) => ({ accessor: `column${i + 1}`, Header: `${i + 1} Column`, width: 100 }));
302+
cy.mount(<AnalyticalTable dir="rtl" columns={columns} data={data} />);
303+
cy.get('[data-component-name="AnalyticalTableContainer"]').scrollTo(-10000, 0);
304+
cy.findByText('100 Column').should('be.visible');
305+
cy.findByText('1-100').should('be.visible');
306+
});
307+
283308
it('tree selection & filtering', () => {
284309
const TreeSelectFilterTable = (props: PropTypes) => {
285310
const [filter, setFilter] = useState('');

packages/main/src/components/AnalyticalTable/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1115,7 +1115,7 @@ const AnalyticalTable = forwardRef<AnalyticalTableDomRef, AnalyticalTablePropTyp
11151115
[visibleColumnsWidth]
11161116
),
11171117
horizontal: true,
1118-
overscan: overscanCountHorizontal
1118+
overscan: isRtl ? Infinity : overscanCountHorizontal
11191119
});
11201120

11211121
const totalSize = columnVirtualizer.getTotalSize();

0 commit comments

Comments
 (0)