diff options
Diffstat (limited to 'src/main/scala/reading/component/index/Menu.scala')
-rw-r--r-- | src/main/scala/reading/component/index/Menu.scala | 45 |
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)) ) - } + ) } |