module IHP.Breadcrumb.Types where
import Prelude (Show(..), Maybe, (<>), ($))
import Data.Text (Text)
import Text.Blaze.Html (Html)
import Text.Blaze.Html.Renderer.String (renderHtml)
data BreadcrumbItem =
BreadcrumbItem
{ BreadcrumbItem -> Html
breadcrumbLabel :: Html
, BreadcrumbItem -> Maybe Text
url :: Maybe Text
}
instance Show BreadcrumbItem where
show :: BreadcrumbItem -> String
show BreadcrumbItem
breadcrumbItem = String
"{ breadcrumbLabel = \"" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
renderedLabel String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"\", url = " String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
renderedUrl String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
" }"
where
renderedLabel :: String
renderedLabel = Html -> String
renderHtml (Html -> String) -> Html -> String
forall a b. (a -> b) -> a -> b
$ BreadcrumbItem -> Html
breadcrumbLabel BreadcrumbItem
breadcrumbItem
renderedUrl :: String
renderedUrl = Maybe Text -> String
forall a. Show a => a -> String
show (Maybe Text -> String) -> Maybe Text -> String
forall a b. (a -> b) -> a -> b
$ BreadcrumbItem -> Maybe Text
url BreadcrumbItem
breadcrumbItem