Navbar now is fully functional and fancy.

beta
Philippe Pittoli 2024-02-23 06:07:56 +01:00
parent 3098372879
commit cd5477b269
4 changed files with 25 additions and 6 deletions

View File

@ -67,6 +67,7 @@ import App.Messages.DNSManagerDaemon as DNSManager
import App.Messages.AuthenticationDaemon as AuthD import App.Messages.AuthenticationDaemon as AuthD
import Halogen as H import Halogen as H
import Halogen.HTML as HH import Halogen.HTML as HH
import Halogen.HTML.Properties as HP
import Type.Proxy (Proxy(..)) import Type.Proxy (Proxy(..))
import Effect.Aff.Class (class MonadAff) import Effect.Aff.Class (class MonadAff)
import Data.ArrayBuffer.Types (ArrayBuffer) import Data.ArrayBuffer.Types (ArrayBuffer)
@ -78,6 +79,7 @@ import Web.Storage.Storage as Storage
import App.LogMessage (LogMessage(..)) import App.LogMessage (LogMessage(..))
import App.Pages import App.Pages
import CSSClasses as C
type Token = String type Token = String
type Login = String type Login = String
@ -245,9 +247,7 @@ render state
render_nav = HH.slot _nav unit NavigationInterface.component unit NavigationInterfaceEvent render_nav = HH.slot _nav unit NavigationInterface.component unit NavigationInterfaceEvent
render_header :: forall monad. MonadAff monad => H.ComponentHTML Action ChildSlots monad render_header :: forall monad. MonadAff monad => H.ComponentHTML Action ChildSlots monad
render_header = case state.token of render_header = Bulma.small_hero "net libre" "Providing free domains since 2015!"
Nothing -> Bulma.hero "net libre" "free domains"
Just _ -> Bulma.hero "net libre" ""
render_logs :: forall monad. MonadAff monad => H.ComponentHTML Action ChildSlots monad render_logs :: forall monad. MonadAff monad => H.ComponentHTML Action ChildSlots monad
render_logs = Bulma.container [ HH.slot_ _log unit AppLog.component unit ] render_logs = Bulma.container [ HH.slot_ _log unit AppLog.component unit ]

View File

@ -152,7 +152,8 @@ render { logged, active, admin } =
link_auth = nav_link "Login" (Navigate Authentication) link_auth = nav_link "Login" (Navigate Authentication)
link_register = nav_link_strong "Register" (Navigate Registration) link_register = nav_link_strong "Register" (Navigate Registration)
link_mail_validation = nav_link "Mail verification" (Navigate MailValidation) link_mail_validation = nav_link "Mail verification" (Navigate MailValidation)
link_disconnection = nav_link "Disconnection" UnLog link_disconnection =
nav_link_ (C.has_text_light <> C.has_background_danger) "Disconnection" UnLog
dropdown title dropdown_elements dropdown title dropdown_elements
= HH.div [HP.classes $ C.navbar_item <> C.has_dropdown <> C.is_hoverable] = HH.div [HP.classes $ C.navbar_item <> C.has_dropdown <> C.is_hoverable]
@ -169,8 +170,10 @@ render { logged, active, admin } =
, HE.onClick (\_ -> action) , HE.onClick (\_ -> action)
] [ (HH.strong [] [ HH.text str ]) ] ] [ (HH.strong [] [ HH.text str ]) ]
nav_link str action = nav_link str action = nav_link_ navbar_color str action
HH.a [ HP.classes (C.navbar_item <> navbar_color)
nav_link_ classes str action =
HH.a [ HP.classes (C.navbar_item <> classes)
, HE.onClick (\_ -> action) , HE.onClick (\_ -> action)
] [ (HH.text str) ] ] [ (HH.text str) ]

View File

@ -316,6 +316,17 @@ hero _title _subtitle
] ]
] ]
small_hero :: forall w i. String -> String -> HH.HTML w i
small_hero _title _subtitle =
HH.section [ HP.classes (C.hero <> C.is_info <> C.is_small) ]
[ HH.div [ HP.classes C.hero_body ]
[ HH.div [ HP.classes $ C.container <> C.has_text_centered ]
[ HH.p [ HP.classes C.title ] [ HH.text _title ]
, HH.p [ HP.classes C.subtitle ] [ HH.text _subtitle ]
]
]
]
hero_danger :: forall w i. String -> String -> HH.HTML w i hero_danger :: forall w i. String -> String -> HH.HTML w i
hero_danger _title _subtitle hero_danger _title _subtitle
= HH.section [ HP.classes (C.hero <> C.is_danger <> C.is_small) ] = HH.section [ HP.classes (C.hero <> C.is_danger <> C.is_small) ]

View File

@ -26,6 +26,9 @@ message = [HH.ClassName "message"]
message_header :: Array HH.ClassName message_header :: Array HH.ClassName
message_header = [HH.ClassName "message-header"] message_header = [HH.ClassName "message-header"]
has_text_centered :: Array HH.ClassName
has_text_centered = [HH.ClassName "has-text-centered"]
message_body :: Array HH.ClassName message_body :: Array HH.ClassName
message_body = [HH.ClassName "message-body"] message_body = [HH.ClassName "message-body"]
@ -72,6 +75,8 @@ has_background_warning_dark :: Array HH.ClassName
has_background_warning_dark = [HH.ClassName "has-background-warning-dark"] has_background_warning_dark = [HH.ClassName "has-background-warning-dark"]
has_background_danger_dark :: Array HH.ClassName has_background_danger_dark :: Array HH.ClassName
has_background_danger_dark = [HH.ClassName "has-background-danger-dark"] has_background_danger_dark = [HH.ClassName "has-background-danger-dark"]
has_background_danger :: Array HH.ClassName
has_background_danger = [HH.ClassName "has-background-danger"]
has_background_primary_light :: Array HH.ClassName has_background_primary_light :: Array HH.ClassName
has_background_primary_light = [HH.ClassName "has-background-primary-light"] has_background_primary_light = [HH.ClassName "has-background-primary-light"]