diff options
Diffstat (limited to 'src/View/Header.hs')
-rw-r--r-- | src/View/Header.hs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/View/Header.hs b/src/View/Header.hs new file mode 100644 index 0000000..a29b9a3 --- /dev/null +++ b/src/View/Header.hs @@ -0,0 +1,42 @@ +{-# LANGUAGE OverloadedStrings #-} + +module View.Header + ( renderHeader + ) where + +import Control.Monad (forM_) + +import Data.String (fromString) + +import Text.Blaze.Html +import Text.Blaze.Html5 +import Text.Blaze.Html5.Attributes +import qualified Text.Blaze.Html5 as H + +import Model.Header +import Model.Translation.Language +import Model.Translation.Message + +renderHeader :: Language -> Maybe Header -> Html +renderHeader language mbCurrentHeader = + H.div ! class_ "header" $ + ul $ + forM_ allHeaders (headerItem language mbCurrentHeader) + +headerItem :: Language -> Maybe Header -> Header -> Html +headerItem language mbCurrentHeader pageHeader = + li $ a + ! class_ (fromString $ (headerClass pageHeader) ++ " " ++ (if mbCurrentHeader == Just pageHeader then "currentHeader" else "")) + ! href (fromString . headerLink $ pageHeader) $ do + i ! class_ (fromString $ "fa fa-lg " ++ (headerIcon pageHeader)) $ "" + H.span + ! class_ "text" + $ fromString (getMessage (headerKey pageHeader) language) + +headerClass :: Header -> String +headerClass Resume = "resume" +headerClass Projects = "projects" + +headerIcon :: Header -> String +headerIcon Resume = "fa-user" +headerIcon Projects = "fa-flask" |