aboutsummaryrefslogtreecommitdiff
path: root/src/View/Header.hs
diff options
context:
space:
mode:
authorJoris Guyonvarch2014-04-06 22:55:16 +0200
committerJoris2019-05-01 15:34:22 +0200
commit0fe906ae7453aa684e998bbcc7a78b62d84f0206 (patch)
treed3968af830b964193349187fb6fc583780cd0ce3 /src/View/Header.hs
parent8b11c4be2b3ac354fa14534662dbd92374617a3e (diff)
Show resume and projects from a configuration file
Diffstat (limited to 'src/View/Header.hs')
-rw-r--r--src/View/Header.hs42
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"