Skip to content

Commit be4d77e

Browse files
committed
Rewrite VerticalCollection to a GlimmerComponent
1 parent a52ab83 commit be4d77e

File tree

11 files changed

+136
-82
lines changed

11 files changed

+136
-82
lines changed

addon/-private/data-view/elements/occluded-content.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
import { set } from '@ember/object';
21
import { DEBUG } from '@glimmer/env';
2+
import { tracked } from '@glimmer/tracking';
33

44
import document from '../../utils/document-shim';
55

66
let OC_IDENTITY = 0;
77

88
export default class OccludedContent {
9+
@tracked element;
10+
911
constructor(tagName) {
1012
this.id = `OC-${OC_IDENTITY++}`;
1113
this.isOccludedContent = true;
@@ -72,6 +74,6 @@ export default class OccludedContent {
7274
}
7375

7476
destroy() {
75-
set(this, 'element', null);
77+
this.element = null;
7678
}
7779
}

addon/-private/data-view/elements/virtual-component.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { set } from '@ember/object';
2+
import { tracked } from '@glimmer/tracking';
23
import { assert } from '@ember/debug';
34
import { DEBUG } from '@glimmer/env';
45

@@ -7,6 +8,9 @@ import document from '../../utils/document-shim';
78
let VC_IDENTITY = 0;
89

910
export default class VirtualComponent {
11+
@tracked upperBound;
12+
@tracked lowerBound;
13+
1014
constructor(content = null, index = null) {
1115
this.id = `VC-${VC_IDENTITY++}`;
1216

@@ -79,8 +83,8 @@ export default class VirtualComponent {
7983
}
8084

8185
destroy() {
82-
set(this, 'upperBound', null);
83-
set(this, 'lowerBound', null);
86+
this.upperBound = null;
87+
this.lowerBound = null;
8488
set(this, 'content', null);
8589
set(this, 'index', null);
8690
}

addon/-private/data-view/radar/dynamic-radar.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
import { DEBUG } from '@glimmer/env';
2+
import { tracked } from '@glimmer/tracking';
23

34
import Radar from './radar';
45
import SkipList from '../skip-list';
56
import roundTo from '../utils/round-to';
67
import getScaledClientRect from '../../utils/element/get-scaled-client-rect';
78

89
export default class DynamicRadar extends Radar {
9-
constructor(parentToken, options) {
10-
super(parentToken, options);
10+
@tracked _firstItemIndex=0;
11+
@tracked _lastItemIndex=0;
12+
13+
@tracked _totalBefore=0;
14+
@tracked _totalAfter=0;
1115

12-
this._firstItemIndex = 0;
13-
this._lastItemIndex = 0;
16+
@tracked _minHeight = Infinity;
1417

15-
this._totalBefore = 0;
16-
this._totalAfter = 0;
18+
constructor(parentToken, options) {
19+
super(parentToken, options);
1720

18-
this._minHeight = Infinity;
1921

2022
this._nextIncrementalRender = null;
2123

addon/-private/data-view/radar/radar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,7 @@ export default class Radar {
687687
this._prevFirstItemIndex += numPrepended;
688688
this._prevLastItemIndex += numPrepended;
689689

690-
this.orderedComponents.forEach((c) => set(c, 'index', get(c, 'index') + numPrepended));
690+
this.orderedComponents.forEach((c) => set(c, 'index', c.index + numPrepended));
691691

692692
this._firstReached = false;
693693

0 commit comments

Comments
 (0)