diff options
Diffstat (limited to 'src/main/scala/reading/component/index/Filters.scala')
-rw-r--r-- | src/main/scala/reading/component/index/Filters.scala | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/main/scala/reading/component/index/Filters.scala b/src/main/scala/reading/component/index/Filters.scala new file mode 100644 index 0000000..1d9cc93 --- /dev/null +++ b/src/main/scala/reading/component/index/Filters.scala @@ -0,0 +1,33 @@ +package reading.component.index + +import rx._ +import Ctx.Owner.Unsafe._ + +import scalatags.JsDom.all._ +import scalacss.Defaults._ +import scalacss.ScalatagsCss._ + +import reading.component.index.style.{Filters => FiltersStyle} +import reading.models.Filter +import reading.utils.{RxTag, RxAttr} + +object Filters { + def apply(filters: Var[Seq[Filter]]): Frag = + RxTag { implicit context => + if(filters().isEmpty) + span("") + else + div( + FiltersStyle.render, + FiltersStyle.filters, + + filters().sortBy(_.name).map { filter => + button( + FiltersStyle.filter, + RxAttr(onclick, Rx(() => filters() = filters().filter(!Filter.equals(_, filter)))), + filter.name + ) + } + ) + } +} |