diff options
Diffstat (limited to 'src/main/scala/reading/component/Index.scala')
-rw-r--r-- | src/main/scala/reading/component/Index.scala | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/src/main/scala/reading/component/Index.scala b/src/main/scala/reading/component/Index.scala index 57f5b4b..78890de 100644 --- a/src/main/scala/reading/component/Index.scala +++ b/src/main/scala/reading/component/Index.scala @@ -1,34 +1,30 @@ package reading.component import rx._ -import Ctx.Owner.Unsafe._ - -import scalatags.JsDom.all._ import scalacss.Defaults._ import scalacss.ScalatagsCss._ +import scalatags.JsDom.all._ -import reading.Books -import reading.component.style.{ Index => IndexStyle } import reading.component.index.{ Menu, Header, Books => BooksComponent } -import reading.models.{ Book, Filter } +import reading.component.style.{ Index => IndexStyle } +import reading.models.{ Book, Books, Filter } object Index { - def apply(initialFilters: Seq[Filter]): HtmlTag = { + def apply(initialFilters: Seq[Filter])(implicit ctx: Ctx.Owner): Frag = { val filters: Var[Seq[Filter]] = Var(initialFilters) - val books: Rx[Seq[Book]] = Rx { - if (filters().isEmpty) Books() else Book.filter(Books(), filters()) - } - val count: Rx[Int] = Rx(books().length) + val books: Rx[Seq[Book]] = Rx(Filter.add(Books(), filters())) + val search: Var[String] = Var("") val showFiltersMenu: Var[Boolean] = Var(false) + val searchedBooks: Rx[Seq[Book]] = Rx(Book.filter(books(), search())) div( IndexStyle.render, IndexStyle.page, - Menu(books, filters, showFiltersMenu), + Menu(books, filters, search, showFiltersMenu), div( IndexStyle.main, - Header(filters, showFiltersMenu, count), - BooksComponent(books) + Header(searchedBooks, filters, search, showFiltersMenu), + BooksComponent(searchedBooks) ) ) } |