aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/reading/component/index/Menu.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/reading/component/index/Menu.scala')
-rw-r--r--src/main/scala/reading/component/index/Menu.scala45
1 files changed, 25 insertions, 20 deletions
diff --git a/src/main/scala/reading/component/index/Menu.scala b/src/main/scala/reading/component/index/Menu.scala
index cfeb6d4..0ea6ca4 100644
--- a/src/main/scala/reading/component/index/Menu.scala
+++ b/src/main/scala/reading/component/index/Menu.scala
@@ -8,6 +8,7 @@ import scalatags.JsDom.all._
import reading.component.index.style.{ Menu => MenuStyle }
import reading.models._
+import reading.Route
import reading.utils.RxUtils._
object Menu {
@@ -88,9 +89,12 @@ object Menu {
span("")
else
div(
- div(
+ a(
MenuStyle.filterTitle,
parentFilter.map { filter =>
+ href := Route.url(Route.Books(filters = Filter.remove(filters(), filter)))
+ }.getOrElse(""),
+ parentFilter.map { filter =>
onclick := (() => FilterUtils.remove(filters, detail, search, filter))
}.getOrElse(""),
if (parentFilter.isDefined) MenuStyle.activeFilter else "",
@@ -104,10 +108,14 @@ object Menu {
filtersWithCount().map {
case (filter, count) => {
val isActive = Filter.contains(filters(), filter)
+ val route = Route.Books(
+ filters = if (isActive) Filter.remove(filters(), filter) else filter +: filters()
+ )
- button(
+ a(
MenuStyle.filter,
if (isActive) MenuStyle.activeFilter else "",
+ href := Rx(Route.url(route)),
onclick := (() =>
if (isActive)
FilterUtils.remove(filters, detail, search, filter)
@@ -135,25 +143,22 @@ object Menu {
implicit
ctx: Ctx.Owner
): Frag =
- Rx {
- div(
- MenuStyle.footer,
+ div(
+ MenuStyle.footer,
- if (filters().nonEmpty)
- div(
- MenuStyle.clear,
- onclick := (() => if (filters.now.nonEmpty) FilterUtils.removeAll(filters, detail, search)),
- "Effacer"
- )
- else
- span(""),
+ a(
+ MenuStyle.clear,
+ Rx(if (filters().nonEmpty) MenuStyle.clearActive else MenuStyle.empty),
+ href := Route.url(Route.Books()),
+ onclick := (() => if (filters.now.nonEmpty) FilterUtils.removeAll(filters, detail, search)),
+ "Effacer"
+ ),
- div(
- MenuStyle.returnToBooks,
- onclick := (() => showFiltersMenu() = false),
- "Afficher",
- span(MenuStyle.bookCount, books().length)
- )
+ div(
+ MenuStyle.returnToBooks,
+ onclick := (() => showFiltersMenu() = false),
+ "Afficher",
+ Rx(span(MenuStyle.bookCount, books().length))
)
- }
+ )
}