aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar André Oliveira <37463445+SpecialAro@users.noreply.github.com>2022-06-14 10:01:50 +0100
committerLibravatar GitHub <noreply@github.com>2022-06-14 09:01:50 +0000
commit87bf6224518fd39ba7485cde691bad5941216258 (patch)
treeda7f6cc57c99486b772c54965244bfdac3b76231
parent6.0.0-nightly.60 [skip ci] (diff)
downloadferdium-app-87bf6224518fd39ba7485cde691bad5941216258.tar.gz
ferdium-app-87bf6224518fd39ba7485cde691bad5941216258.tar.zst
ferdium-app-87bf6224518fd39ba7485cde691bad5941216258.zip
Feature: Progress Indicator for page loading (#248)
Fix one of the asks in #239
-rw-r--r--src/components/services/content/ServiceView.js3
-rw-r--r--src/models/Service.js12
2 files changed, 15 insertions, 0 deletions
diff --git a/src/components/services/content/ServiceView.js b/src/components/services/content/ServiceView.js
index 1effcb628..b5887eba4 100644
--- a/src/components/services/content/ServiceView.js
+++ b/src/components/services/content/ServiceView.js
@@ -113,6 +113,9 @@ class ServiceView extends Component {
113 !service.isServiceAccessRestricted && ( 113 !service.isServiceAccessRestricted && (
114 <WebviewLoader loaded={false} name={service.name} /> 114 <WebviewLoader loaded={false} name={service.name} />
115 )} 115 )}
116 {service.isLoadingPage && !service.isFirstLoad && (
117 <WebviewLoader loaded={false} />
118 )}
116 {service.isError && ( 119 {service.isError && (
117 <WebviewErrorHandler 120 <WebviewErrorHandler
118 name={service.recipe.name} 121 name={service.recipe.name}
diff --git a/src/models/Service.js b/src/models/Service.js
index e2b9ae7c6..ae13a063d 100644
--- a/src/models/Service.js
+++ b/src/models/Service.js
@@ -74,6 +74,8 @@ export default class Service {
74 74
75 @observable isLoading = true; 75 @observable isLoading = true;
76 76
77 @observable isLoadingPage = true;
78
77 @observable isError = false; 79 @observable isError = false;
78 80
79 @observable errorMessage = ''; 81 @observable errorMessage = '';
@@ -383,11 +385,20 @@ export default class Service {
383 385
384 this.hasCrashed = false; 386 this.hasCrashed = false;
385 this.isLoading = true; 387 this.isLoading = true;
388 this.isLoadingPage = true;
386 this.isError = false; 389 this.isError = false;
387 }); 390 });
388 391
392 this.webview.addEventListener('did-stop-loading', event => {
393 debug('Did stop load', this.name, event);
394
395 this.isLoading = false;
396 this.isLoadingPage = false;
397 });
398
389 const didLoad = () => { 399 const didLoad = () => {
390 this.isLoading = false; 400 this.isLoading = false;
401 this.isLoadingPage = false;
391 402
392 if (!this.isError) { 403 if (!this.isError) {
393 this.isFirstLoad = false; 404 this.isFirstLoad = false;
@@ -407,6 +418,7 @@ export default class Service {
407 this.isError = true; 418 this.isError = true;
408 this.errorMessage = event.errorDescription; 419 this.errorMessage = event.errorDescription;
409 this.isLoading = false; 420 this.isLoading = false;
421 this.isLoadingPage = false;
410 } 422 }
411 }); 423 });
412 424