aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/reading/component/Index.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/reading/component/Index.scala')
-rw-r--r--src/main/scala/reading/component/Index.scala24
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)
)
)
}