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) ) ) ) } }