module App.Nav where import Prelude import CSSClasses as C import Halogen.HTML as HH import Halogen.HTML.Events as HE import Halogen.HTML.Properties as HP import Halogen.HTML.Properties.ARIA as ARIA import Bulma as Bulma netlibre_navbar :: forall w i. Boolean -> Boolean -> i -> i -> i -> i -> i -> HH.HTML w i netlibre_navbar authenticated admin actionHome actionDomainList actionAuthdAdmin actionRegister actionLogin = main_nav [ nav_brand [ logo, burger_menu ] , nav_menu [ navbar_start [ link_home , case authenticated of false -> HH.div_ [] true -> link_domains , case authenticated, admin of true, true -> link_authd_admin _, _ -> HH.div_ [] --, dropdown "List of something" -- [ dropdown_element "something 1" -- , dropdown_element "something 2" -- , dropdown_element "something 3" -- , dropdown_separator -- , dropdown_element "something 4" -- ] ] , navbar_end [ navbar_item [ HH.div [HP.classes C.buttons] [ nav_button_strong "Register" actionRegister , nav_button_light "Login" actionLogin ] ] ] ] ] where main_nav = HH.nav [ HP.classes C.navbar, ARIA.label "main navigation", ARIA.role "navigation" ] logo = HH.a [HP.classes C.navbar_item, HP.href "/"] [HH.img [HP.src "/logo.jpeg", HP.width 112, HP.height 28]] burger_menu = HH.a [HP.classes C.navbar_burger, ARIA.label "menu", ARIA.expanded "false", Bulma.data_target "navbarExample" ] [ HH.span [ARIA.hidden "true"] [] , HH.span [ARIA.hidden "true"] [] , HH.span [ARIA.hidden "true"] [] ] nav_brand = HH.div [HP.classes C.navbar_brand] nav_menu = HH.div [HP.id "navbarExample", HP.classes C.navbar_menu] navbar_start = HH.div [HP.classes C.navbar_start] navbar_end = HH.div [HP.classes C.navbar_end] link_home = HH.a [HP.classes C.navbar_item, HE.onClick (\_ -> actionHome)] [HH.text "Home"] link_domains = HH.a [HP.classes C.navbar_item, HE.onClick (\_ -> actionDomainList)] [HH.text "Domain List"] link_authd_admin = HH.a [HP.classes C.navbar_item, HE.onClick (\_ -> actionAuthdAdmin)] [HH.text "Authd Admin"] dropdown title dropdown_elements = HH.div [HP.classes (C.navbar_item <> C.has_dropdown <> C.is_hoverable)] [ dropdown_title title, HH.div [HP.classes C.navbar_dropdown] dropdown_elements ] dropdown_title str = HH.a [HP.classes C.navbar_link] [HH.text str] dropdown_element str = HH.a [HP.classes C.navbar_item] [HH.text str] dropdown_separator = HH.hr [HP.classes C.navbar_divider] nav_button_strong str action = HH.a [HP.classes (C.button <> C.is_primary), HE.onClick (\_ -> action)] [HH.strong [] [HH.text str]] nav_button_light str action = HH.a [HP.classes (C.button <> C.is_light), HE.onClick (\_ -> action)] [HH.text str] navbar_item = HH.div [HP.classes C.navbar_item]