diff --git a/libs/books-page/src/lib/book-api.effects.ts b/libs/books-page/src/lib/book-api.effects.ts index cf6ee84..7cd0a45 100644 --- a/libs/books-page/src/lib/book-api.effects.ts +++ b/libs/books-page/src/lib/book-api.effects.ts @@ -7,4 +7,15 @@ import { BooksPageActions, BooksApiActions } from '@book-co/books-page/actions'; @Injectable() export class BooksApiEffects { constructor(private booksService: BooksService, private actions$: Actions) {} + + loadBooks$ = createEffect(() => + this.actions$.pipe( + ofType(BooksPageActions.enter), + mergeMap(() => + this.booksService + .all() + .pipe(map((books) => BooksApiActions.booksLoaded({ books }))) + ) + ) + ); } diff --git a/libs/books-page/src/lib/books-page/books-page.component.ts b/libs/books-page/src/lib/books-page/books-page.component.ts index be106b9..1348830 100644 --- a/libs/books-page/src/lib/books-page/books-page.component.ts +++ b/libs/books-page/src/lib/books-page/books-page.component.ts @@ -28,15 +28,6 @@ export class BooksPageComponent implements OnInit { ngOnInit() { this.store.dispatch(BooksPageActions.enter()); - - this.getBooks(); - this.removeSelectedBook(); - } - - getBooks() { - this.booksService.all().subscribe((books) => { - this.store.dispatch(BooksApiActions.booksLoaded({ books })); - }); } onSelect(book: BookModel) { @@ -63,7 +54,6 @@ export class BooksPageComponent implements OnInit { this.store.dispatch(BooksPageActions.createBook({ book: bookProps })); this.booksService.create(bookProps).subscribe((book) => { - this.getBooks(); this.removeSelectedBook(); this.store.dispatch(BooksApiActions.bookCreated({ book })); @@ -76,7 +66,6 @@ export class BooksPageComponent implements OnInit { ); this.booksService.update(book.id, book).subscribe((book) => { - this.getBooks(); this.removeSelectedBook(); this.store.dispatch(BooksApiActions.bookUpdated({ book })); @@ -87,7 +76,6 @@ export class BooksPageComponent implements OnInit { this.store.dispatch(BooksPageActions.deleteBook({ bookId: book.id })); this.booksService.delete(book.id).subscribe(() => { - this.getBooks(); this.removeSelectedBook(); this.store.dispatch(BooksApiActions.bookDeleted({ bookId: book.id }));