Skip to content

Commit fe006af

Browse files
committed
move seo-interceptor to own file
1 parent 0b5b1b9 commit fe006af

File tree

2 files changed

+31
-27
lines changed

2 files changed

+31
-27
lines changed

app/app.config.js

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,10 @@
1-

1+
import seoInterceptor from './interceptors/seo-interceptor';
2+
23
export default function config($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) {
34
$locationProvider.hashPrefix('!');
45
$urlRouterProvider.otherwise('/');
56

6-
//TODO: Move to own file.
7-
$httpProvider.interceptors.push(['$q', '$injector', function seoInterceptor($q, $injector) {
8-
var $http;
9-
10-
return {
11-
response: function (response) {
12-
$http = $http || $injector.get('$http');
13-
var $timeout = $injector.get('$timeout');
14-
var $rootScope = $injector.get('$rootScope');
15-
16-
if ($http.pendingRequests.length < 1) {
17-
$timeout(function () {
18-
if ($http.pendingRequests.length < 1) {
19-
$rootScope.htmlReady();
20-
}
21-
}, 700);
22-
/*an 0.7 seconds safety interval, if there are no requests for 0.7 seconds,
23-
it means that the app is through rendering*/
24-
}
25-
return response || $q.when(response);
26-
},
27-
responseError: function (response) {
28-
return $q.reject(response);
29-
}
30-
};
31-
}]);
7+
$httpProvider.interceptors.push(seoInterceptor);
328
}
339

3410
config.$inject = ['$stateProvider', '$urlRouterProvider', '$locationProvider', '$httpProvider'];
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
export default function seoInterceptor($q, $injector) {
2+
3+
let $http;
4+
5+
return {
6+
response: (response) => {
7+
$http = $http || $injector.get('$http');
8+
let $timeout = $injector.get('$timeout');
9+
let $rootScope = $injector.get('$rootScope');
10+
11+
if ($http.pendingRequests.length < 1) {
12+
$timeout(()=> {
13+
if ($http.pendingRequests.length < 1) {
14+
$rootScope.htmlReady();
15+
console.log('[HTML] ready.');
16+
}
17+
}, 700);
18+
/*an 0.7 seconds safety interval, if there are no requests for 0.7 seconds, it means that the layout is through rendering*/
19+
}
20+
return response || $q.when(response);
21+
},
22+
responseError: (response) => {
23+
return $q.reject(response);
24+
}
25+
};
26+
}
27+
28+
seoInterceptor.$inject = ['$q', '$injector'];

0 commit comments

Comments
 (0)