module Web.View.FederatedPolicyOverlays.Index where import Web.Types import Generated.Types import IHP.Prelude import IHP.ViewPrelude import Web.Routes () data IndexView = IndexView { overlays :: ![FederatedPolicyOverlay] , hubs :: ![Hub] } instance View IndexView where html IndexView { .. } = [hsx|

Federated Policy Overlays

Compliance Dashboard New Overlay
{renderOverlaysList overlays} |] renderOverlaysList :: [FederatedPolicyOverlay] -> Html renderOverlaysList [] = [hsx|

No policy overlays yet.

|] renderOverlaysList overlays = [hsx|
{forEach overlays renderOverlayRow}
Title Status Enforced From Created
|] renderOverlayRow :: FederatedPolicyOverlay -> Html renderOverlayRow o = [hsx| {o.title} " text-xs px-2 py-0.5 rounded font-medium"}> {o.status} {maybe "–" show o.enforcedFrom} {show o.createdAt} View |] statusBadge :: Text -> Text statusBadge s = case s of "draft" -> "bg-gray-100 text-gray-600" "active" -> "bg-green-100 text-green-700" "retired" -> "bg-red-100 text-red-600" _ -> "bg-gray-100 text-gray-600"