21 lines
657 B
Haskell
21 lines
657 B
Haskell
{-# 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|<a .btn ##{triggerId} href=@{route}>^{modalTrigger}|]
|
|
Right content -> [whamlet|<div .btn ##{triggerId}>^{modalTrigger}|]
|