packages feed

yesod-core-1.7.0.0: test/YesodCoreTest/ParamFocusSplit/SubR.hs

{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE ViewPatterns #-}
{-# OPTIONS_GHC -Wno-orphans #-}

-- | The split-out @SubR@ fragment of the parameterized @PApp a@ site. The
-- focused splice ('setFocusOnNestedRoute') here emits only the @SubR a@
-- fragment's dispatch / parse / render / attrs nested instances; the parent
-- "YesodCoreTest.ParamFocusSplit.Runtime" generates the rest and delegates to these.
-- This module is the compile-time pin for the focused parameterized codegen
-- (the @RouteAttrsNested (SubR a)@ instance head in particular, which used to
-- be built from a bare constructor without the site's type argument).
module YesodCoreTest.ParamFocusSplit.SubR where

import Data.Text (Text)
import Yesod.Core
import YesodCoreTest.ParamFocusSplit.Resources

mkYesodOpts
    (setFocusOnNestedRoute "SubR" (setParameterizedSubroute True defaultOpts))
    "PApp a"
    paramFocusResources

getSubHomeR :: HandlerFor (PApp a) Text
getSubHomeR = pure "subHome"

getSubDetailR :: Int -> HandlerFor (PApp a) Text
getSubDetailR _ = pure "subDetail"