module Web.View.Widgets.Index where
import Web.Types
import Generated.Types
import IHP.Prelude
import IHP.ViewPrelude
import Web.Routes ()
data IndexView = IndexView
{ widgets :: ![Widget]
, hubs :: ![Hub]
}
instance View IndexView where
html IndexView { .. } = [hsx|
| Name |
Hub |
Type |
Status |
Version |
|
{forEach widgets (renderWidget hubs)}
|]
renderWidget :: [Hub] -> Widget -> Html
renderWidget hubs w = [hsx|
|
{w.name}
|
{hubName hubs w.hubId} |
{w.widgetType} |
{w.status}
|
v{show w.version} |
Edit
|
|]
hubName :: [Hub] -> Id Hub -> Text
hubName hubs hubId =
case find (\h -> h.id == hubId) hubs of
Just h -> h.name
Nothing -> "—"