Reload component if issue loading
This commit is contained in:
@@ -30,6 +30,16 @@ class ComponentView {
|
|||||||
controller($scope, $rootScope, $timeout, componentManager, desktopManager, themeManager) {
|
controller($scope, $rootScope, $timeout, componentManager, desktopManager, themeManager) {
|
||||||
'ngInject';
|
'ngInject';
|
||||||
|
|
||||||
|
$scope.onVisibilityChange = function() {
|
||||||
|
if(document.visibilityState == "hidden") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($scope.issueLoading) {
|
||||||
|
$scope.reloadComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$scope.themeHandlerIdentifier = "component-view-" + Math.random();
|
$scope.themeHandlerIdentifier = "component-view-" + Math.random();
|
||||||
componentManager.registerHandler({identifier: $scope.themeHandlerIdentifier, areas: ["themes"], activationHandler: (component) => {
|
componentManager.registerHandler({identifier: $scope.themeHandlerIdentifier, areas: ["themes"], activationHandler: (component) => {
|
||||||
$scope.reloadThemeStatus();
|
$scope.reloadThemeStatus();
|
||||||
@@ -73,6 +83,14 @@ class ComponentView {
|
|||||||
if($scope.loading) {
|
if($scope.loading) {
|
||||||
$scope.loading = false;
|
$scope.loading = false;
|
||||||
$scope.issueLoading = true;
|
$scope.issueLoading = true;
|
||||||
|
|
||||||
|
if(!$scope.didAttemptReload) {
|
||||||
|
$scope.didAttemptReload = true;
|
||||||
|
$scope.reloadComponent();
|
||||||
|
} else {
|
||||||
|
// We'll attempt to reload when the tab gains focus
|
||||||
|
document.addEventListener("visibilitychange", $scope.onVisibilityChange);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, 3500);
|
}, 3500);
|
||||||
iframe.onload = (event) => {
|
iframe.onload = (event) => {
|
||||||
@@ -206,6 +224,7 @@ class ComponentView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
desktopManager.deregisterUpdateObserver($scope.updateObserver);
|
desktopManager.deregisterUpdateObserver($scope.updateObserver);
|
||||||
|
document.removeEventListener("visibilitychange", $scope.onVisibilityChange);
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.$on("$destroy", function() {
|
$scope.$on("$destroy", function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user