Skip to content

Commit 1362fe9

Browse files
committed
ES6 class for Padding
1 parent fdaafbf commit 1362fe9

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

src/modules/padding.js

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,28 +49,36 @@ Object.getOwnPropertyNames(CacheProto.prototype).forEach(methodName =>
4949
Cache.prototype[methodName] = CacheProto.prototype[methodName]
5050
);
5151

52-
export default function Padding(template) {
53-
let result;
54-
52+
function generateElement(template) {
5553
if(template.nodeType !== Node.ELEMENT_NODE) {
5654
throw new Error('ui-scroll directive requires an Element node for templating the view');
5755
}
58-
56+
let element;
5957
switch (template.tagName.toLowerCase()) {
6058
case 'dl':
6159
throw new Error(`ui-scroll directive does not support <${template.tagName}> as a repeating tag: ${template.outerHTML}`);
6260
case 'tr':
6361
let table = angular.element('<table><tr><td><div></div></td></tr></table>');
64-
result = table.find('tr');
62+
element = table.find('tr');
6563
break;
6664
case 'li':
67-
result = angular.element('<li></li>');
65+
element = angular.element('<li></li>');
6866
break;
6967
default:
70-
result = angular.element('<div></div>');
68+
element = angular.element('<div></div>');
7169
}
70+
return element;
71+
}
7272

73-
result.cache = new Cache();
73+
class Padding {
74+
constructor(template) {
75+
this.element = generateElement(template);
76+
this.cache = new Cache();
77+
}
78+
79+
height() {
80+
return this.element.height.apply(this.element, arguments);
81+
}
82+
}
7483

75-
return result;
76-
}
84+
export default Padding;

src/modules/viewport.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ export default function Viewport(elementRoutines, buffer, element, viewportContr
2525
createPaddingElements(template) {
2626
topPadding = new Padding(template);
2727
bottomPadding = new Padding(template);
28-
element.before(topPadding);
29-
element.after(bottomPadding);
28+
element.before(topPadding.element);
29+
element.after(bottomPadding.element);
3030
},
3131

3232
applyContainerStyle() {
@@ -54,11 +54,11 @@ export default function Viewport(elementRoutines, buffer, element, viewportContr
5454
},
5555

5656
insertElement(e, sibling) {
57-
return elementRoutines.insertElement(e, sibling || topPadding);
57+
return elementRoutines.insertElement(e, sibling || topPadding.element);
5858
},
5959

6060
insertElementAnimated(e, sibling) {
61-
return elementRoutines.insertElementAnimated(e, sibling || topPadding);
61+
return elementRoutines.insertElementAnimated(e, sibling || topPadding.element);
6262
},
6363

6464
shouldLoadBottom() {

0 commit comments

Comments
 (0)