diff options
Diffstat (limited to 'src/main/scala/reading/component/index/FilterUtils.scala')
-rw-r--r-- | src/main/scala/reading/component/index/FilterUtils.scala | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/main/scala/reading/component/index/FilterUtils.scala b/src/main/scala/reading/component/index/FilterUtils.scala new file mode 100644 index 0000000..d4b24e4 --- /dev/null +++ b/src/main/scala/reading/component/index/FilterUtils.scala @@ -0,0 +1,39 @@ +package reading.component.index + +import rx._ + +import reading.models._ +import reading.Route + +object FilterUtils { + def remove( + filters: Var[Seq[Filter]], + search: Var[String], + filter: Filter + ): Unit = { + val newFilters = Filter.remove(filters.now, filter) + filters() = newFilters + search() = "" + Route.push(Route.Books(newFilters)) + } + + def removeAll( + filters: Var[Seq[Filter]], + search: Var[String] + ): Unit = { + filters() = Nil + search() = "" + Route.push(Route.Books(Nil)) + } + + def add( + filters: Var[Seq[Filter]], + search: Var[String], + filter: Filter + ): Unit = { + val newFilters = filter +: filters.now + filters() = newFilters + search() = "" + Route.push(Route.Books(newFilters)) + } +} |