Skip to content

Commit 06da544

Browse files
authored
Scheduler: current_time_shader refactor — pass config object instead of whole workspace (#33931)
1 parent f83ae87 commit 06da544

3 files changed

Lines changed: 16 additions & 3 deletions

File tree

packages/devextreme/js/__internal/scheduler/shaders/current_time_shader.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
import type { dxElementWrapper } from '@js/core/renderer';
22
import $ from '@js/core/renderer';
33

4-
import type SchedulerWorkSpace from '../workspaces/m_work_space';
4+
export interface CurrentTimeShaderConfig {
5+
$container: dxElementWrapper;
6+
}
57

68
const DATE_TIME_SHADER_CLASS = 'dx-scheduler-date-time-shader';
79

810
class CurrentTimeShader {
9-
protected $container = this.workSpace.getScrollable().$content();
11+
protected readonly $container: dxElementWrapper;
1012

1113
protected shader!: dxElementWrapper[];
1214

1315
protected $shader!: dxElementWrapper;
1416

15-
constructor(protected workSpace: SchedulerWorkSpace) {
17+
constructor(config: CurrentTimeShaderConfig) {
18+
this.$container = config.$container;
1619
}
1720

1821
render(isHorizontalGroupedWorkSpace: boolean, groupCount: number, cellCount: number): void {

packages/devextreme/js/__internal/scheduler/shaders/current_time_shader_horizontal.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,14 @@ import type { dxElementWrapper } from '@js/core/renderer';
22
import { getBoundingRect } from '@js/core/utils/position';
33
import { setWidth } from '@js/core/utils/size';
44

5+
import type SchedulerWorkSpace from '../workspaces/m_work_space';
56
import CurrentTimeShader from './current_time_shader';
67

78
class HorizontalCurrentTimeShader extends CurrentTimeShader {
9+
constructor(protected readonly workSpace: SchedulerWorkSpace) {
10+
super({ $container: workSpace.getScrollable().$content() });
11+
}
12+
813
renderShader(isHorizontalGroupedWorkSpace: boolean, groupCount: number, cellCount: number): void {
914
const effectiveGroupCount = isHorizontalGroupedWorkSpace ? groupCount : 1;
1015

packages/devextreme/js/__internal/scheduler/shaders/current_time_shader_vertical.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import $, { type dxElementWrapper } from '@js/core/renderer';
22
import { setHeight, setWidth } from '@js/core/utils/size';
33

4+
import type SchedulerWorkSpace from '../workspaces/m_work_space';
45
import CurrentTimeShader from './current_time_shader';
56

67
const DATE_TIME_SHADER_ALL_DAY_CLASS = 'dx-scheduler-date-time-shader-all-day';
@@ -17,6 +18,10 @@ class VerticalCurrentTimeShader extends CurrentTimeShader {
1718

1819
private $allDayIndicator!: dxElementWrapper;
1920

21+
constructor(protected readonly workSpace: SchedulerWorkSpace) {
22+
super({ $container: workSpace.getScrollable().$content() });
23+
}
24+
2025
// eslint-disable-next-line @typescript-eslint/no-unused-vars
2126
renderShader(isHorizontalGroupedWorkSpace: boolean, groupCount: number, cellCount: number): void {
2227
let shaderHeight = this.getShaderHeight();

0 commit comments

Comments
 (0)