module Web.View.WidgetAdapterSpecs.Index where import Web.Types import Generated.Types import IHP.Prelude import IHP.ViewPrelude import Web.Routes () import Application.Helper.View (adapterStatusBadge) data IndexView = IndexView { specs :: ![WidgetAdapterSpec] , envelopes :: ![EnvelopeEmissionContract] , reportings :: ![InteractionReportingContract] } instance View IndexView where html IndexView { .. } = [hsx|

Widget Adapter Specs

Register adapters that allow non-IHP UI frameworks to participate in IHF.

+ Register Adapter
Envelope Contracts ({length envelopes}) Reporting Contracts ({length reportings})
{if null specs then noSpecsMsg else renderTable specs} |] noSpecsMsg :: Html noSpecsMsg = [hsx|

No adapter specs registered yet.

|] renderTable :: [WidgetAdapterSpec] -> Html renderTable specs = [hsx|
{forEach specs renderRow}
Name Framework Version Status Created
|] renderRow :: WidgetAdapterSpec -> Html renderRow s = [hsx| {s.name} {s.framework} {s.version} " text-xs px-2 py-0.5 rounded font-medium"}> {s.status} {show s.createdAt} |]