Browse Source

refactor: migrate blog page component to standalone

pull/5742/head
HarjobandeepSingh 3 weeks ago
parent
commit
6eb23d637e
  1. 1
      CHANGELOG.md
  2. 2
      apps/client/src/app/app-routing.module.ts
  3. 11
      apps/client/src/app/pages/blog/blog-page.component.ts
  4. 14
      apps/client/src/app/pages/blog/blog-page.module.ts
  5. 19
      apps/client/src/app/pages/blog/blog-page.routes.ts

1
CHANGELOG.md

@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Changed the _As seen in_ section on the landing page to an animated carousel - Changed the _As seen in_ section on the landing page to an animated carousel
- Refactored `transactionCount` to `activitiesCount` in the endpoint `GET api/v1/portfolio/holding/:dataSource/:symbol` - Refactored `transactionCount` to `activitiesCount` in the endpoint `GET api/v1/portfolio/holding/:dataSource/:symbol`
- Refactored various components to use self-closing tags - Refactored various components to use self-closing tags
- Refactored the blog page component to standalone
- Removed the deprecated endpoint `GET api/v1/portfolio/position/:dataSource/:symbol` - Removed the deprecated endpoint `GET api/v1/portfolio/position/:dataSource/:symbol`
- Removed the deprecated endpoint `PUT api/v1/portfolio/position/:dataSource/:symbol/tags` - Removed the deprecated endpoint `PUT api/v1/portfolio/position/:dataSource/:symbol/tags`
- Improved the language localization for German (`de`) - Improved the language localization for German (`de`)

2
apps/client/src/app/app-routing.module.ts

@ -48,7 +48,7 @@ const routes: Routes = [
{ {
path: publicRoutes.blog.path, path: publicRoutes.blog.path,
loadChildren: () => loadChildren: () =>
import('./pages/blog/blog-page.module').then((m) => m.BlogPageModule) import('./pages/blog/blog-page.routes').then((m) => m.routes)
}, },
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],

11
apps/client/src/app/pages/blog/blog-page.component.ts

@ -1,19 +1,24 @@
import { DataService } from '@ghostfolio/client/services/data.service'; import { DataService } from '@ghostfolio/client/services/data.service';
import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { Component, OnDestroy } from '@angular/core'; import { Component, CUSTOM_ELEMENTS_SCHEMA, OnDestroy } from '@angular/core';
import { MatCardModule } from '@angular/material/card';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons'; import { addIcons } from 'ionicons';
import { chevronForwardOutline } from 'ionicons/icons'; import { chevronForwardOutline } from 'ionicons/icons';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
@Component({ @Component({
host: { class: 'page' }, host: { class: 'page' },
imports: [IonIcon, MatCardModule, RouterModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
selector: 'gf-blog-page', selector: 'gf-blog-page',
styleUrls: ['./blog-page.scss'], styleUrls: ['./blog-page.scss'],
templateUrl: './blog-page.html', templateUrl: './blog-page.html',
standalone: false standalone: true
}) })
export class BlogPageComponent implements OnDestroy { export class GfBlogPageComponent implements OnDestroy {
public hasPermissionForSubscription: boolean; public hasPermissionForSubscription: boolean;
private unsubscribeSubject = new Subject<void>(); private unsubscribeSubject = new Subject<void>();

14
apps/client/src/app/pages/blog/blog-page.module.ts

@ -1,14 +0,0 @@
import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { MatCardModule } from '@angular/material/card';
import { IonIcon } from '@ionic/angular/standalone';
import { BlogPageRoutingModule } from './blog-page-routing.module';
import { BlogPageComponent } from './blog-page.component';
@NgModule({
declarations: [BlogPageComponent],
imports: [BlogPageRoutingModule, CommonModule, IonIcon, MatCardModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class BlogPageModule {}

19
apps/client/src/app/pages/blog/blog-page-routing.module.ts → apps/client/src/app/pages/blog/blog-page.routes.ts

@ -1,15 +1,14 @@
import { AuthGuard } from '@ghostfolio/client/core/auth.guard';
import { publicRoutes } from '@ghostfolio/common/routes/routes'; import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { NgModule } from '@angular/core'; import { Routes } from '@angular/router';
import { RouterModule, Routes } from '@angular/router';
import { BlogPageComponent } from './blog-page.component'; import { AuthGuard } from '../../core/auth.guard';
import { GfBlogPageComponent } from './blog-page.component';
const routes: Routes = [ export const routes: Routes = [
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
component: BlogPageComponent, component: GfBlogPageComponent,
path: '', path: '',
title: publicRoutes.blog.title title: publicRoutes.blog.title
}, },
@ -119,7 +118,7 @@ const routes: Routes = [
import( import(
'./2023/03/1000-stars-on-github/1000-stars-on-github-page.component' './2023/03/1000-stars-on-github/1000-stars-on-github-page.component'
).then((c) => c.ThousandStarsOnGitHubPageComponent), ).then((c) => c.ThousandStarsOnGitHubPageComponent),
title: 'Ghostfolio reaches 1’000 Stars on GitHub' title: "Ghostfolio reaches 1'000 Stars on GitHub"
}, },
{ {
canActivate: [AuthGuard], canActivate: [AuthGuard],
@ -212,9 +211,3 @@ const routes: Routes = [
title: 'Hacktoberfest 2025' title: 'Hacktoberfest 2025'
} }
]; ];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class BlogPageRoutingModule {}
Loading…
Cancel
Save