Skip to content

Commit 66ff0fb

Browse files
committed
Refactor insertElementAnimated and removeElementAnimated
1 parent 5465cba commit 66ff0fb

File tree

1 file changed

+38
-48
lines changed

1 file changed

+38
-48
lines changed

src/ui-scroll.js

Lines changed: 38 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -31,54 +31,9 @@ angular.module('ui.scroll', [])
3131
'$q',
3232
'$parse',
3333
function (console, $injector, $rootScope, $timeout, $q, $parse) {
34-
var $animate, insertElementAnimated, isAngularVersionLessThen1_3, log, removeElementAnimated;
35-
36-
log = console.debug || console.log;
37-
38-
if ($injector.has && $injector.has('$animate')) {
39-
$animate = $injector.get('$animate');
40-
}
41-
42-
isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3;
43-
44-
if (!$animate) {
45-
insertElementAnimated = insertElement;
46-
removeElementAnimated = removeElement;
47-
} else {
48-
if (isAngularVersionLessThen1_3) {
49-
insertElementAnimated = function (newElement, previousElement) {
50-
var deferred;
51-
deferred = $q.defer();
52-
// no need for parent - previous element is never null
53-
$animate.enter(newElement, null, previousElement, function () {
54-
return deferred.resolve();
55-
});
56-
return [deferred.promise];
57-
};
58-
59-
removeElementAnimated = function (wrapper) {
60-
var deferred;
61-
deferred = $q.defer();
62-
$animate.leave(wrapper.element, function () {
63-
wrapper.scope.$destroy();
64-
return deferred.resolve();
65-
});
66-
return [deferred.promise];
67-
};
68-
} else {
69-
insertElementAnimated = function (newElement, previousElement) {
70-
// no need for parent - previous element is never null
71-
return [$animate.enter(newElement, null, previousElement)];
72-
};
73-
removeElementAnimated = function (wrapper) {
74-
return [
75-
($animate.leave(wrapper.element)).then(function () {
76-
return wrapper.scope.$destroy();
77-
})
78-
];
79-
};
80-
}
81-
}
34+
const $animate = ($injector.has && $injector.has('$animate')) ? $injector.get('$animate') : null;
35+
const isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3;
36+
const log = console.debug || console.log;
8237

8338
return {
8439
require: ['?^uiScrollViewport'],
@@ -100,6 +55,41 @@ angular.module('ui.scroll', [])
10055
return [];
10156
}
10257

58+
function insertElementAnimated(newElement, previousElement) {
59+
if (!$animate) {
60+
return insertElement(newElement, previousElement);
61+
}
62+
63+
if (isAngularVersionLessThen1_3) {
64+
const deferred = $q.defer();
65+
// no need for parent - previous element is never null
66+
$animate.enter(newElement, null, previousElement, () => deferred.resolve());
67+
68+
return [deferred.promise];
69+
}
70+
71+
// no need for parent - previous element is never null
72+
return [$animate.enter(newElement, null, previousElement)];
73+
}
74+
75+
function removeElementAnimated(wrapper) {
76+
if (!$animate) {
77+
return removeElement(wrapper);
78+
}
79+
80+
if (isAngularVersionLessThen1_3) {
81+
const deferred = $q.defer();
82+
$animate.leave(wrapper.element, () => {
83+
wrapper.scope.$destroy();
84+
return deferred.resolve();
85+
});
86+
87+
return [deferred.promise];
88+
}
89+
90+
return [($animate.leave(wrapper.element)).then(() => wrapper.scope.$destroy())];
91+
}
92+
10393
function Buffer(itemName, $scope, linker, bufferSize) {
10494
var buffer, reset;
10595

0 commit comments

Comments
 (0)