2026-04-20 14:04:04 +02:00
|
|
|
import { Toggle } from '@cameleer/design-system';
|
|
|
|
|
import { toRequest, type FormState } from './form-state';
|
2026-04-20 13:57:30 +02:00
|
|
|
|
|
|
|
|
export function ReviewStep({
|
2026-04-20 14:04:04 +02:00
|
|
|
form,
|
|
|
|
|
setForm,
|
2026-04-20 13:57:30 +02:00
|
|
|
}: {
|
|
|
|
|
form: FormState;
|
|
|
|
|
setForm?: (f: FormState) => void;
|
|
|
|
|
}) {
|
2026-04-20 14:04:04 +02:00
|
|
|
const req = toRequest(form);
|
|
|
|
|
return (
|
|
|
|
|
<div style={{ display: 'grid', gap: 12, maxWidth: 720 }}>
|
|
|
|
|
<div>
|
|
|
|
|
<strong>Name:</strong> {form.name}
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<strong>Severity:</strong> {form.severity}
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<strong>Scope:</strong> {form.scopeKind}
|
|
|
|
|
{form.scopeKind !== 'env' &&
|
|
|
|
|
` (app=${form.appSlug}${form.routeId ? `, route=${form.routeId}` : ''}${form.agentId ? `, agent=${form.agentId}` : ''})`}
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<strong>Condition kind:</strong> {form.conditionKind}
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<strong>Intervals:</strong> eval {form.evaluationIntervalSeconds}s · for {form.forDurationSeconds}s · re-notify {form.reNotifyMinutes}m
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<strong>Targets:</strong> {form.targets.length}
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<strong>Webhooks:</strong> {form.webhooks.length}
|
|
|
|
|
</div>
|
|
|
|
|
{setForm && (
|
|
|
|
|
<div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
|
|
|
|
|
<Toggle
|
|
|
|
|
checked={form.enabled}
|
|
|
|
|
onChange={(e) => setForm({ ...form, enabled: e.target.checked })}
|
|
|
|
|
label="Enabled on save"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
<details>
|
|
|
|
|
<summary>Raw request JSON</summary>
|
|
|
|
|
<pre
|
|
|
|
|
style={{
|
|
|
|
|
fontSize: 11,
|
|
|
|
|
background: 'var(--code-bg)',
|
|
|
|
|
padding: 8,
|
|
|
|
|
borderRadius: 6,
|
|
|
|
|
overflow: 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
{JSON.stringify(req, null, 2)}
|
|
|
|
|
</pre>
|
|
|
|
|
</details>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
2026-04-20 13:57:30 +02:00
|
|
|
}
|