diff --git a/apps/agora/app/project.json b/apps/agora/app/project.json
index 33798b83f..70c4a96b8 100644
--- a/apps/agora/app/project.json
+++ b/apps/agora/app/project.json
@@ -45,11 +45,7 @@
"output": ""
}
],
- "styles": [
- "apps/agora/app/src/styles.scss",
- "node_modules/primeicons/primeicons.css",
- "node_modules/primeng/resources/primeng.min.css"
- ],
+ "styles": ["apps/agora/app/src/styles.scss", "node_modules/primeicons/primeicons.css"],
"scripts": []
},
"configurations": {
diff --git a/apps/agora/app/src/app/app.component.ts b/apps/agora/app/src/app/app.component.ts
index c043acb0f..01be63beb 100644
--- a/apps/agora/app/src/app/app.component.ts
+++ b/apps/agora/app/src/app/app.component.ts
@@ -4,11 +4,9 @@ import { ActivatedRoute, NavigationEnd, Router, RouterModule } from '@angular/ro
import { FooterComponent, HeaderComponent } from '@sagebionetworks/agora/ui';
import { filter } from 'rxjs';
import { ToastModule } from 'primeng/toast';
-import { MessageService } from 'primeng/api';
@Component({
imports: [RouterModule, HeaderComponent, FooterComponent, ToastModule],
- providers: [MessageService],
selector: 'app-root',
templateUrl: './app.component.html',
styleUrl: './app.component.scss',
diff --git a/apps/agora/app/src/app/app.config.ts b/apps/agora/app/src/app/app.config.ts
index 4c09b56ce..abe3f6301 100644
--- a/apps/agora/app/src/app/app.config.ts
+++ b/apps/agora/app/src/app/app.config.ts
@@ -4,13 +4,19 @@ import {
withEnabledBlockingInitialNavigation,
withInMemoryScrolling,
} from '@angular/router';
-import { withInterceptorsFromDi, provideHttpClient } from '@angular/common/http';
-import { provideAnimations } from '@angular/platform-browser/animations';
+import { provideHttpClient, withInterceptors } from '@angular/common/http';
+import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
import { BASE_PATH as API_CLIENT_BASE_PATH } from '@sagebionetworks/agora/api-client-angular';
import { BASE_PATH as SYNAPSE_API_CLIENT_BASE_PATH } from '@sagebionetworks/synapse/api-client-angular';
import { configFactory, ConfigService } from '@sagebionetworks/agora/config';
import { routes } from './app.routes';
+import {
+ httpErrorInterceptor,
+ rollbarFactory,
+ RollbarService,
+} from '@sagebionetworks/agora/services';
+import { MessageService } from 'primeng/api';
// This index is used to remove the corresponding provider in app.config.server.ts.
// TODO: This index could be out of sync if we are not careful. Find a more elegant way.
@@ -42,8 +48,12 @@ export const appConfig: ApplicationConfig = {
: configService.config.csrApiUrl,
deps: [ConfigService],
},
- provideAnimations(),
- provideHttpClient(withInterceptorsFromDi()),
+ provideAnimationsAsync(),
+ provideHttpClient(withInterceptors([httpErrorInterceptor])),
+ {
+ provide: RollbarService,
+ useFactory: rollbarFactory,
+ },
provideRouter(
routes,
withEnabledBlockingInitialNavigation(),
@@ -51,5 +61,6 @@ export const appConfig: ApplicationConfig = {
scrollPositionRestoration: 'enabled',
}),
),
+ MessageService,
],
};
diff --git a/libs/agora/genes/src/lib/components/download-dom-image/download-dom-image.component.html b/libs/agora/genes/src/lib/components/download-dom-image/download-dom-image.component.html
index da793bf80..5501119c0 100644
--- a/libs/agora/genes/src/lib/components/download-dom-image/download-dom-image.component.html
+++ b/libs/agora/genes/src/lib/components/download-dom-image/download-dom-image.component.html
@@ -14,9 +14,10 @@