Skip to content

Commit 249ba17

Browse files
committed
introduce OPERATIONS
1 parent 0182953 commit 249ba17

File tree

3 files changed

+26
-15
lines changed

3 files changed

+26
-15
lines changed

src/modules/buffer.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { OPERATIONS } from './utils';
2+
13
export default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {
24
const buffer = Object.create(Array.prototype);
35

@@ -19,7 +21,7 @@ export default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {
1921
append(items) {
2022
items.forEach((item) => {
2123
++buffer.next;
22-
buffer.insert('append', item);
24+
buffer.insert(OPERATIONS.APPEND, item);
2325
});
2426
buffer.maxIndex = buffer.eof ? buffer.next - 1 : Math.max(buffer.next - 1, buffer.maxIndex);
2527
},
@@ -32,7 +34,7 @@ export default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {
3234
else {
3335
--buffer.first;
3436
}
35-
buffer.insert('prepend', item);
37+
buffer.insert(OPERATIONS.PREPEND, item);
3638
});
3739
buffer.minIndex = buffer.bof ? buffer.minIndex = buffer.first : Math.min(buffer.first, buffer.minIndex);
3840
},
@@ -41,15 +43,15 @@ export default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {
4143
* inserts wrapped element in the buffer
4244
* the first argument is either operation keyword (see below) or a number for operation 'insert'
4345
* for insert the number is the index for the buffer element the new one have to be inserted after
44-
* operations: 'append', 'prepend', 'insert', 'remove', 'update', 'none'
46+
* operations: 'append', 'prepend', 'insert', 'remove', 'none'
4547
*/
4648
insert(operation, item, isTop) {
4749
const wrapper = {
4850
item: item
4951
};
5052

51-
if (operation % 1 === 0) {// it is an insert
52-
wrapper.op = 'insert';
53+
if (operation % 1 === 0) { // it is an insert
54+
wrapper.op = OPERATIONS.INSERT;
5355
buffer.splice(operation, 0, wrapper);
5456
if(isTop) {
5557
buffer.first--;
@@ -60,10 +62,10 @@ export default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {
6062
} else {
6163
wrapper.op = operation;
6264
switch (operation) {
63-
case 'append':
65+
case OPERATIONS.APPEND:
6466
buffer.push(wrapper);
6567
break;
66-
case 'prepend':
68+
case OPERATIONS.PREPEND:
6769
buffer.unshift(wrapper);
6870
break;
6971
}
@@ -152,7 +154,7 @@ export default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {
152154
},
153155

154156
getItems() {
155-
return buffer.filter(item => item.op === 'none');
157+
return buffer.filter(item => item.op === OPERATIONS.NONE);
156158
},
157159

158160
getFirstItem() {

src/modules/utils.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export const OPERATIONS = {
2+
NONE: 'none',
3+
PREPEND: 'prepend',
4+
APPEND: 'append',
5+
INSERT: 'insert',
6+
REMOVE: 'remove',
7+
REMOVE_AND_SHIFT_TOP: 'remove and shift top index'
8+
};

src/ui-scroll.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import ElementRoutines from './modules/elementRoutines.js';
33
import ScrollBuffer from './modules/buffer.js';
44
import Viewport from './modules/viewport.js';
55
import Adapter from './modules/adapter.js';
6+
import { OPERATIONS } from './modules/utils';
67

78
angular.module('ui.scroll', [])
89

@@ -311,20 +312,20 @@ angular.module('ui.scroll', [])
311312

312313
buffer.forEach((wrapper, i) => {
313314
switch (wrapper.op) {
314-
case 'prepend':
315+
case OPERATIONS.PREPEND:
315316
toBePrepended.unshift(wrapper);
316317
break;
317-
case 'append':
318+
case OPERATIONS.APPEND:
318319
insertWrapperContent(wrapper, i);
319-
wrapper.op = 'none';
320+
wrapper.op = OPERATIONS.NONE;
320321
inserted.push(wrapper);
321322
break;
322-
case 'insert':
323+
case OPERATIONS.INSERT:
323324
promises = promises.concat(createElement(wrapper, i, viewport.insertElementAnimated));
324-
wrapper.op = 'none';
325+
wrapper.op = OPERATIONS.NONE;
325326
inserted.push(wrapper);
326327
break;
327-
case 'remove':
328+
case OPERATIONS.REMOVE:
328329
toBeRemoved.push(wrapper);
329330
}
330331
});
@@ -334,7 +335,7 @@ angular.module('ui.scroll', [])
334335
if (toBePrepended.length)
335336
toBePrepended.forEach((wrapper) => {
336337
insertWrapperContent(wrapper);
337-
wrapper.op = 'none';
338+
wrapper.op = OPERATIONS.NONE;
338339
});
339340

340341
buffer.forEach((item, i) => item.scope.$index = buffer.first + i);

0 commit comments

Comments
 (0)