diff --git a/CHANGELOG.md b/CHANGELOG.md index a37a531da..5642465c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Extended the account selector options to include the platform and currency +- Improved the error handling of the `AuthGuard` - Improved the language localization for Japanese (`ja`) - Upgraded `yahoo-finance2` from version `4.0.0` to `4.0.2` diff --git a/apps/client/src/app/core/auth.guard.ts b/apps/client/src/app/core/auth.guard.ts index 91a14d135..fdb50c9ad 100644 --- a/apps/client/src/app/core/auth.guard.ts +++ b/apps/client/src/app/core/auth.guard.ts @@ -10,7 +10,7 @@ import { RouterStateSnapshot } from '@angular/router'; import { EMPTY } from 'rxjs'; -import { catchError } from 'rxjs/operators'; +import { catchError, finalize } from 'rxjs/operators'; @Service() export class AuthGuard { @@ -34,9 +34,11 @@ export class AuthGuard { if (utmSource === 'ios') { this.router.navigate(publicRoutes.demo.routerLink); resolve(false); + return EMPTY; } else if (utmSource === 'trusted-web-activity') { this.router.navigate(publicRoutes.register.routerLink); resolve(false); + return EMPTY; } else if ( Object.values(publicRoutes) .map(({ path }) => { @@ -57,6 +59,9 @@ export class AuthGuard { resolve(true); return EMPTY; + }), + finalize(() => { + resolve(false); }) ) .subscribe((user) => { @@ -77,13 +82,13 @@ export class AuthGuard { return; } else if ( state.url.startsWith(`/${internalRoutes.home.path}`) && - user.settings.viewMode === 'ZEN' + user?.settings?.viewMode === 'ZEN' ) { this.router.navigate(internalRoutes.zen.routerLink); resolve(false); return; } else if (state.url.startsWith(`/${publicRoutes.start.path}`)) { - if (user.settings.viewMode === 'ZEN') { + if (user?.settings?.viewMode === 'ZEN') { this.router.navigate(internalRoutes.zen.routerLink); } else { this.router.navigate(internalRoutes.home.routerLink); @@ -93,7 +98,7 @@ export class AuthGuard { return; } else if ( state.url.startsWith(`/${internalRoutes.zen.path}`) && - user.settings.viewMode === 'DEFAULT' + user?.settings?.viewMode === 'DEFAULT' ) { this.router.navigate(internalRoutes.home.routerLink); resolve(false); diff --git a/apps/client/src/app/pages/faq/overview/faq-overview-page.html b/apps/client/src/app/pages/faq/overview/faq-overview-page.html index ee4e0ad1a..77c23789e 100644 --- a/apps/client/src/app/pages/faq/overview/faq-overview-page.html +++ b/apps/client/src/app/pages/faq/overview/faq-overview-page.html @@ -4,7 +4,7 @@
+
Find quick answers to commonly asked questions about Ghostfolio in our Frequently Asked Questions (FAQ) section. Discover what Ghostfolio is, explore its features, and learn about our privacy practices. Get all the diff --git a/apps/client/src/app/pages/faq/saas/saas-page.html b/apps/client/src/app/pages/faq/saas/saas-page.html index fc39acc53..dbb50e5c0 100644 --- a/apps/client/src/app/pages/faq/saas/saas-page.html +++ b/apps/client/src/app/pages/faq/saas/saas-page.html @@ -4,7 +4,7 @@
+
Find quick answers to commonly asked questions about the fully managed Ghostfolio cloud offering in our Frequently Asked Questions (FAQ) section. diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html index ebfe3f34c..59478d3cf 100644 --- a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html +++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html @@ -4,7 +4,7 @@
+
Find quick answers to commonly asked questions about self-hosting Ghostfolio in our Frequently Asked Questions (FAQ) section.
diff --git a/apps/client/src/app/pages/resources/overview/resources-overview.component.ts b/apps/client/src/app/pages/resources/overview/resources-overview.component.ts index 7830b2eec..6c0d43833 100644 --- a/apps/client/src/app/pages/resources/overview/resources-overview.component.ts +++ b/apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -13,26 +13,22 @@ import { RouterModule } from '@angular/router'; export class ResourcesOverviewComponent { public overviewItems = [ { - description: - 'Find quick answers to commonly asked questions about Ghostfolio in our Frequently Asked Questions (FAQ) section.', + description: $localize`Find quick answers to commonly asked questions about Ghostfolio in our Frequently Asked Questions (FAQ) section.`, routerLink: publicRoutes.faq.routerLink, title: publicRoutes.faq.title }, { - description: - 'Explore our guides to help you get started with investing and managing your finances.', + description: $localize`Explore our guides to help you get started with investing and managing your finances.`, routerLink: publicRoutes.resources.subRoutes.guides.routerLink, title: publicRoutes.resources.subRoutes.guides.title }, { - description: - 'Access various market resources and tools to stay informed about financial markets.', + description: $localize`Access various market resources and tools to stay informed about financial markets.`, routerLink: publicRoutes.resources.subRoutes.markets.routerLink, title: publicRoutes.resources.subRoutes.markets.title }, { - description: - 'Learn key financial terms and concepts in our comprehensive glossary.', + description: $localize`Learn key financial terms and concepts in our comprehensive glossary.`, routerLink: publicRoutes.resources.subRoutes.glossary.routerLink, title: publicRoutes.resources.subRoutes.glossary.title }