{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
module Yesod.Paginator.PaginationConfig
( PaginationConfig(..)
, PageParamName(..)
, defaultPaginationConfig
) where
import Yesod.Paginator.Prelude
import Yesod.Core
import Yesod.Paginator.Pages
newtype PageParamName = PageParamName { PageParamName -> Text
unPageParamName :: Text }
deriving stock PageParamName -> PageParamName -> Bool
(PageParamName -> PageParamName -> Bool)
-> (PageParamName -> PageParamName -> Bool) -> Eq PageParamName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PageParamName -> PageParamName -> Bool
$c/= :: PageParamName -> PageParamName -> Bool
== :: PageParamName -> PageParamName -> Bool
$c== :: PageParamName -> PageParamName -> Bool
Eq
deriving newtype (ReadPrec [PageParamName]
ReadPrec PageParamName
Int -> ReadS PageParamName
ReadS [PageParamName]
(Int -> ReadS PageParamName)
-> ReadS [PageParamName]
-> ReadPrec PageParamName
-> ReadPrec [PageParamName]
-> Read PageParamName
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PageParamName]
$creadListPrec :: ReadPrec [PageParamName]
readPrec :: ReadPrec PageParamName
$creadPrec :: ReadPrec PageParamName
readList :: ReadS [PageParamName]
$creadList :: ReadS [PageParamName]
readsPrec :: Int -> ReadS PageParamName
$creadsPrec :: Int -> ReadS PageParamName
Read, Int -> PageParamName -> ShowS
[PageParamName] -> ShowS
PageParamName -> String
(Int -> PageParamName -> ShowS)
-> (PageParamName -> String)
-> ([PageParamName] -> ShowS)
-> Show PageParamName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PageParamName] -> ShowS
$cshowList :: [PageParamName] -> ShowS
show :: PageParamName -> String
$cshow :: PageParamName -> String
showsPrec :: Int -> PageParamName -> ShowS
$cshowsPrec :: Int -> PageParamName -> ShowS
Show, Text -> Maybe PageParamName
PageParamName -> Text
(Text -> Maybe PageParamName)
-> (PageParamName -> Text) -> PathPiece PageParamName
forall s. (Text -> Maybe s) -> (s -> Text) -> PathPiece s
toPathPiece :: PageParamName -> Text
$ctoPathPiece :: PageParamName -> Text
fromPathPiece :: Text -> Maybe PageParamName
$cfromPathPiece :: Text -> Maybe PageParamName
PathPiece)
data =
{ :: PageParamName
, :: PerPage
}
defaultPaginationConfig :: PaginationConfig
= PaginationConfig :: PageParamName -> PerPage -> PaginationConfig
PaginationConfig
{ paginationConfigPageParamName :: PageParamName
paginationConfigPageParamName = Text -> PageParamName
PageParamName Text
"p"
, paginationConfigPerPage :: PerPage
paginationConfigPerPage = PerPage
3
}