Lorem ipsum dolor sit amet, consectetur adipiscing elit

March 7, 2022 • 32 views

Updated at June 19, 2022

Lorem ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam tellus urna, posuere sit amet risus a, luctus porta sem. Aenean aliquam diam quis dolor dictum lacinia. Integer in sagittis quam, non laoreet nisi. Donec ipsum leo, pulvinar nec nisl quis, ultricies rhoncus urna. Sed quis consequat felis, vitae laoreet tortor. Phasellus diam quam, pulvinar at tellus vitae, sagittis aliquam turpis. In molestie risus tempus, viverra nisl eget, rutrum nunc. In sed mauris et ex tincidunt efficitur quis nec lectus. Praesent efficitur lorem felis, a varius nisl rutrum sit amet.

Dolor sit amet

Vivamus lacinia nunc eu tortor hendrerit, sed ultrices arcu ultricies. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam sed elit sapien. Fusce dignissim, ante feugiat tincidunt auctor, risus metus dignissim lorem, quis laoreet metus augue non felis. Suspendisse potenti. Sed vitae ante vitae nibh consequat elementum. Donec quis tortor vitae sem lobortis faucibus. Nunc sed mi id elit tincidunt egestas nec quis lectus. Fusce lacus quam, vehicula sit amet tempor ornare, egestas nec orci. Sed at vehicula neque. Mauris mollis lorem mauris, eget ultrices ligula porta vitae. Nunc sagittis tempus metus id venenatis. Etiam egestas fermentum augue, eget porta nibh ornare vitae. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Praesent et ligula arcu.

Vivamus lacinia

  • Etiam at purus eros.
  • Maecenas dapibus vel nibh ac aliquam.
  • Cras consectetur congue quam vitae aliquam.
  • Sed a augue pretium, eleifend enim et, elementum leo.
  • Nunc eu condimentum massa.
  • Curabitur sit amet ipsum ligula.
  • import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';
    import { first, map, Observable, of } from 'rxjs';
    import { BlogPost, BlogPostUserData } from '../../blog.datatypes';
    import { BlogService } from '../../services/blog.service';
    
    @Component({
      selector: 'app-blog-sidebar',
      templateUrl: './blog-sidebar.component.html',
      styleUrls: ['./blog-sidebar.component.css']
    })
    export class BlogSidebarComponent implements OnChanges {
    
      @Input() blogPost!: BlogPost;
      
      @Input() userData!: BlogPostUserData;
    
      recommendedBlogPosts$: Observable<BlogPost[]> = of([]);
    
      constructor(private blogService: BlogService) { }
    
      ngOnChanges(changes: SimpleChanges): void {
        if (!this.blogPost) {
          return;
        }
    
        this.loadRecommendedPosts();
      }
    
      loadRecommendedPosts(): void {
        this.recommendedBlogPosts$ = this.blogService
          .getPage(3, 'created_at', this.blogPost?.keywords?.[0] ?? null)
          .pipe(
            map(resp => resp.filter(x => x.id !== this.blogPost.id)));
      }
    }

    Morbi eu posuere nulla, id mollis mauris. Nam fringilla ante sapien, et pharetra massa lobortis eu. Aliquam turpis lectus, fringilla vitae tincidunt nec, aliquam id nibh. Aliquam erat volutpat. Sed maximus ultricies dolor, sit amet mollis mauris interdum eu. Integer neque ex, posuere at lacus tincidunt, molestie volutpat mi. Nam gravida libero lobortis, cursus urna non, tristique urna.

    Nam gravida libero

    Curabitur nisl lacus, aliquam quis magna vitae, tincidunt posuere nunc. Morbi dapibus lectus vitae dolor efficitur, et porttitor urna ultrices. Vivamus sit amet congue risus. Aliquam sollicitudin egestas malesuada. Aliquam accumsan finibus quam ut viverra. Vestibulum consectetur nisi venenatis sapien iaculis, a pharetra orci commodo. Donec vel efficitur felis. Cras dignissim scelerisque malesuada. Quisque nec dui at ex maximus congue. Vestibulum dapibus vestibulum ante, vitae pretium ligula lacinia eu. Vestibulum eleifend molestie nibh vitae sollicitudin. Vivamus cursus lectus ante, tristique efficitur lectus rutrum non. Vivamus ac neque rutrum, accumsan metus non, feugiat nunc. Nunc sed fermentum risus. Donec et varius ligula. Integer porttitor sed justo id pharetra.

    © 2022 Nathan. All Rights Reserved.