rakutentech / r10 / R10.Header

This create a generic header.

view : Header -> ViewArgs z msg route -> Element.WithContext.Element (R10.Context.ContextInternal z) msg


type alias Header =
{ sideMenuOpen : Basics.Bool
, userMenuOpen : Basics.Bool
, maxWidth : Basics.Int
, padding : Basics.Int
, supportedLanguageList : List R10.Language.Language
, urlLogin : String
, urlLogout : String
, session : Session
, debuggingMode : Basics.Bool
, backgroundColor : Maybe Element.WithContext.Color 
}


type LanguageSystem route
    = LanguageInRoute ({ routeToPath : R10.Language.Language -> route -> String, route : route, routeToLanguage : route -> R10.Language.Language })
    | LanguageInModel


type Msg
    = ToggleSideMenu
    | ToggleUserMenu
    | Logout
    | Login
    | CloseUserMenu
    | KeyDown KeyPressed
    | Click (List String)
    | GotSession (Result Http.Error SessionData)


type Session
    = SessionNotRequired
    | SessionNotRequested
    | SessionFetching
    | SessionSuccess SessionData
    | SessionError Http.Error


type alias SessionData =
{ email : String
, firstName : String
, lastName : String 
}


type alias ViewArgs z msg route =
{ extraContent : List (Element.WithContext.Element (R10.Context.ContextInternal z) msg)
, extraContentRightSide : List (Element.WithContext.Element (R10.Context.ContextInternal z) msg)
, from : String
, msgMapper : Msg -> msg
, isTop : Basics.Bool
, isMobile : Basics.Bool
, onClick : String -> msg
, urlTop : String
, languageSystem : LanguageSystem route
, logoOnDark : Element.WithContext.Element (R10.Context.ContextInternal z) msg
, logoOnLight : Element.WithContext.Element (R10.Context.ContextInternal z) msg
, darkHeader : Basics.Bool
, theme : R10.Theme.Theme 
}

attrsLink : List (Element.WithContext.Attribute (R10.Context.ContextInternal z) msg)

closeMenu : Header -> Header

decodeSession : Json.Decode.Decoder SessionData

extraCss : String

getSession : Basics.Float -> Platform.Cmd.Cmd Msg

init : Header

languageMenu : Header -> ViewArgs z msg route -> List (Element.WithContext.Element (R10.Context.ContextInternal z) msg)

urlLogin : Header -> ViewArgs z msg route -> Element.WithContext.Element (R10.Context.ContextInternal z) Msg

logoutLink : Header -> ViewArgs z msg route -> Element.WithContext.Element (R10.Context.ContextInternal z) Msg

menuSeparator : List (Element.WithContext.Element (R10.Context.ContextInternal z) msg)

menuTitle : List (Element.WithContext.Element (R10.Context.ContextInternal z) msg) -> Element.WithContext.Element (R10.Context.ContextInternal z) msg

subscriptions : Header -> (Msg -> msg) -> List (Platform.Sub.Sub msg)

update : Msg -> Header -> Header

userExample : { email : String, firstName : String, lastName : String }

iconHamburger : { isActive : Basics.Bool, onPress : msg } -> Element.WithContext.Element (R10.Context.ContextInternal z) msg

cssHamburger : String -> String

Styles for the Hamburger icon