diff options
Diffstat (limited to 'src/main/scala/reading/component/Index.scala')
-rw-r--r-- | src/main/scala/reading/component/Index.scala | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/main/scala/reading/component/Index.scala b/src/main/scala/reading/component/Index.scala new file mode 100644 index 0000000..28d9081 --- /dev/null +++ b/src/main/scala/reading/component/Index.scala @@ -0,0 +1,42 @@ +package reading.component + +import rx._ +import Ctx.Owner.Unsafe._ + +import scalatags.JsDom.all._ +import scalacss.Defaults._ +import scalacss.ScalatagsCss._ + +import reading.component.style.{Index => IndexStyle} +import reading.component.index.{FiltersMenu, Filters, Books} +import reading.models.{Book, Filter} +import reading.utils.RxAttr + +object Index { + def apply(): Frag = { + val filters: Var[Seq[Filter]] = Var(Nil) + val books: Rx[Seq[Book]] = Rx { + if(filters().isEmpty) Book.all else Book.filter(Book.all, filters()) + } + + div( + IndexStyle.render, + + button( + IndexStyle.header, + RxAttr(onclick, Rx(() => filters() = Nil)), + "Conseils de lecture" + ), + + div( + IndexStyle.page, + FiltersMenu(books, filters), + div( + IndexStyle.main, + Filters(filters), + Books(books) + ) + ) + ) + } +} |