packages feed

ihp-1.4.0: IHP/Controller/Layout.hs

{-|
Module: IHP.Controller.Layout
Copyright: (c) digitally induced GmbH, 2020
-}
module IHP.Controller.Layout
( setLayout
, getLayout
, ViewLayout (..)
) where

import IHP.Prelude
import IHP.ViewSupport
import IHP.Controller.Context

newtype ViewLayout = ViewLayout ((?context :: ControllerContext) => Layout)

setLayout :: (?context :: ControllerContext) => ((?context :: ControllerContext) => Layout) -> IO ()
setLayout layout = do
    putContext (ViewLayout layout)
{-# INLINE setLayout #-}

getLayout :: (?context :: ControllerContext) => IO Layout
getLayout = do
    (ViewLayout layout) <- fromContext
    pure layout