package reading.component import rx._ import scalacss.Defaults._ import scalacss.ScalatagsCss._ import scalatags.JsDom.all._ import reading.component.index.{ Menu, Books => BooksComponent } import reading.component.style.{ Index => IndexStyle } import reading.models.{ Book, Books, Filter } object Index { def apply(initialFilters: Set[Filter], initialDetail: Option[Book])(implicit ctx: Ctx.Owner): Frag = { val filters: Var[Set[Filter]] = Var(initialFilters) val books: Rx[Seq[Book]] = Rx(Filter.add(Books(), filters())) val search: Var[String] = Var("") val showFiltersMenu: Var[Boolean] = Var(false) val detail: Var[Option[Book]] = Var(initialDetail) div( IndexStyle.render, IndexStyle.page, Menu(books, filters, detail, search, showFiltersMenu), div( IndexStyle.main, BooksComponent(books, filters, detail, search, showFiltersMenu) ) ) } }