module Web.View.WidgetPatterns.Index where import Web.Types import Generated.Types import IHP.Prelude import IHP.ViewPrelude -- Row: WidgetPattern fields + adopter_count + latest_version type PatternIndexRow = (WidgetPattern, Int, Maybe Int) data IndexView = IndexView { patterns :: ![PatternIndexRow] } instance View IndexView where html IndexView { .. } = [hsx|

Widget Pattern Library

Published reusable widget patterns.

New Pattern
{forEach patterns renderPatternRow} {if null patterns then [hsx|

No published patterns yet.

|] else mempty}
|] renderPatternRow :: PatternIndexRow -> Html renderPatternRow (pattern, adopterCount, mVersion) = [hsx|
{pattern.name} {pattern.widgetType} {if pattern.isCrossHub then [hsx|cross-hub|] else mempty}
{tshow adopterCount} adopters {maybe mempty (\v -> [hsx|v{tshow v}|]) mVersion}
{maybe mempty (\d -> [hsx|

{d}

|]) pattern.description}
|]