package reading.component.index import rx._ import scalatags.JsDom.all._ import scalacss.Defaults._ import scalacss.ScalatagsCss._ import reading.component.index.style.{Books => BooksStyle} import reading.models.{Book, Program} import reading.utils.RxTag object Books { def apply(books: Rx[Seq[Book]]): Frag = div( BooksStyle.render, RxTag { implicit context => div( div( BooksStyle.count, s"${books().length} livres" ), books().sorted.map { book => div( BooksStyle.book, div(BooksStyle.title, book.title), div(BooksStyle.author, s", ${book.author}"), div( BooksStyle.detail, img( BooksStyle.cover, src := s"cover/${book.title}.jpg" ), div( div(BooksStyle.item, s"classe : ${book.programs.map(Program.grade).distinct.sorted.mkString(", ")}"), div(BooksStyle.item, s"programme : ${book.programs.map(p => "« " ++ p.toString ++ " »").sorted.mkString(", ")}"), div(BooksStyle.item, s"thème : ${book.themes.sorted.mkString(", ")}"), div(BooksStyle.item, s"genre : ${book.genres.sorted.mkString(", ")}"), book.period.map { period => div(BooksStyle.item, s"période : $period") } ) ) ) } ) } ) }