{-# LANGUAGE NoImplicitPrelude, TemplateHaskell, QuasiQuotes #-} module Handler.Utils.Templates where import Data.Either (isLeft) import Import.NoFoundation lipsum :: WidgetT site IO () lipsum = $(widgetFile "widgets/lipsum") modal :: WidgetT site IO () -> Either (Route site) (WidgetT site IO ()) -> WidgetT site IO () modal modalTrigger modalContent = do let modalDynamic = isLeft modalContent modalId <- newIdent triggerId <- newIdent $(widgetFile "widgets/modal") case modalContent of Left route -> [whamlet|^{modalTrigger}|] Right content -> [whamlet|
^{modalTrigger}|]