Skip to content

Commit 393fff2

Browse files
authored
Scheduler: fix cell width during virtual scrolling (T1287345) (#30578)
Co-authored-by: Vladimir Bushmanov <[email protected]>
1 parent a629871 commit 393fff2

File tree

4 files changed

+49
-2
lines changed

4 files changed

+49
-2
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import Scheduler from 'devextreme-testcafe-models/scheduler';
2+
import { createScreenshotsComparer } from 'devextreme-screenshot-comparer';
3+
import { createWidget } from '../../../../helpers/createWidget';
4+
import url from '../../../../helpers/getPageUrl';
5+
import { scrollTo } from '../../helpers/utils';
6+
import {
7+
insertStylesheetRulesToPage,
8+
removeStylesheetRulesFromPage,
9+
} from '../../../../helpers/domUtils';
10+
import { safeSizeTest } from '../../../../helpers/safeSizeTest';
11+
12+
fixture.disablePageReloads`Scheduler: Virtual scrolling`
13+
.page(url(__dirname, '../../../container.html'));
14+
15+
safeSizeTest('Cell width set in css should be correct for virtual scrolling after scroll down (T1287345)', async (t) => {
16+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
17+
18+
const scheduler = new Scheduler('#container');
19+
20+
await scrollTo(0, 3000);
21+
await t.click(scheduler.toolbar.navigator.nextButton);
22+
await t.expect(await takeScreenshot('virtual_scroll_cell_width.png', scheduler.workSpace)).ok();
23+
24+
await t
25+
.expect(compareResults.isValid())
26+
.ok(compareResults.errorMessages());
27+
}, [600, 800]).before(async () => {
28+
await insertStylesheetRulesToPage(`
29+
#container .dx-scheduler-cell-sizes-horizontal {
30+
width: 200px !important;
31+
}`);
32+
await createWidget('dxScheduler', {
33+
dataSource: [],
34+
currentView: 'week',
35+
scrolling: {
36+
mode: 'virtual',
37+
},
38+
currentDate: new Date(2021, 2, 28),
39+
height: 300,
40+
});
41+
}).after(async () => {
42+
await removeStylesheetRulesFromPage();
43+
});
5.09 KB
Loading

packages/devextreme/js/__internal/scheduler/r1/components/base/virtual_cell.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export interface VirtualCellProps extends Partial<PropsWithStyles> {
99
width: number;
1010
colSpan?: number;
1111
isHeaderCell: boolean;
12+
className?: string;
1213
}
1314

1415
export const VirtualCellDefaultProps = {
@@ -21,6 +22,7 @@ export class VirtualCell extends BaseInfernoComponent<VirtualCellProps> {
2122
const {
2223
colSpan,
2324
isHeaderCell,
25+
className = '',
2426
width,
2527
styles,
2628
} = this.props;
@@ -30,7 +32,7 @@ export class VirtualCell extends BaseInfernoComponent<VirtualCellProps> {
3032

3133
return (
3234
<Cell
33-
className="dx-scheduler-virtual-cell"
35+
className={`dx-scheduler-virtual-cell ${className}`}
3436
styles={modifiedStyles}
3537
colSpan={colSpan}
3638
/>

packages/devextreme/js/__internal/scheduler/r1/components/base/virtual_row.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,9 @@ export class VirtualRow extends BaseInfernoComponent<VirtualRowProps> {
7272
<VirtualCell
7373
key={index.toString()}
7474
width={VirtualCellDefaultProps.width}
75-
isHeaderCell={VirtualCellDefaultProps.isHeaderCell} />
75+
isHeaderCell={VirtualCellDefaultProps.isHeaderCell}
76+
className="dx-scheduler-cell-sizes-horizontal"
77+
/>
7678
),
7779
)
7880
}

0 commit comments

Comments
 (0)