packages feed

wikimusic-ssr-1.0.1.6: src/WikiMusic/SSR/View/ErrorHtml.hs

{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}

module WikiMusic.SSR.View.ErrorHtml where

import Data.ByteString.Base16.Lazy qualified as B16
import Data.Text qualified as T
import Principium
import Text.Blaze.Html5 as H
import Text.Blaze.Html5.Attributes as A
import WikiMusic.SSR.View.HtmlUtil

errorPage' :: (MonadIO m) => Env -> ViewVars -> Text -> m Html
errorPage' env vv message' =
  simplePage env vv (SimplePageTitle $ (^. #titles % #songsPage) |##| (vv ^. #language)) $ section $ do
    h3 . text $ messageCauses
    H.pre $ text message
  where
    messageCauses :: Text
    messageCauses = T.intercalate " - " causeStrings
    message = decodeUtf8 . B16.decodeLenient . encodeUtf8 $ message'
    causeStrings = catMaybes [Just "Error", if T.isInfixOf "504" message then Just "Gateway Timeout" else Nothing]