cavallium-website/src/app/article/article.component.ts

41 lines
1.3 KiB
TypeScript

import { Component, OnInit, OnDestroy } from "@angular/core";
import { ActivatedRoute, UrlSegment } from "@angular/router";
import { map } from "rxjs/operators";
import { DocumentFetchService } from "../services/document-fetch.service";
import { DocumentData } from "../symbols/DocumentData";
import { MarkdownService } from "ngx-markdown";
import { CurrentDocumentService } from "../services/current-document.service";
@Component({
selector: "app-article",
templateUrl: "./article.component.html",
styleUrls: ["./article.component.scss"]
})
export class ArticleComponent implements OnInit, OnDestroy {
public documentData: DocumentData;
constructor(
private activatedRoute: ActivatedRoute,
private documentFetcher: DocumentFetchService,
private markdownService: MarkdownService,
private currentDocumentService: CurrentDocumentService
) { }
ngOnInit() {
this.activatedRoute.url
.pipe(map((urlSegments: UrlSegment[]) => urlSegments.map(urlSegment => urlSegment.path).join("/")))
.subscribe(async (url: string) => {
const docData: DocumentData = await this.documentFetcher.fetch(url);
this.documentData = docData;
this.currentDocumentService.setCurrentDocument(docData);
});
}
ngOnDestroy() {
this.currentDocumentService.setCurrentDocument(null);
}
}