+ {card.payload.kind === "questions"
+ ? card.payload.questions.map((question, index) => (
+
+
+ {question.prompt}
+
+ {question.control === "text" ? (
+
+ setAnswers((current) => ({ ...current, [question.id]: event.target.value }))
+ }
+ />
+ ) : question.control === "select" ? (
+
+ ) : (
+
+ {(question.options ?? []).map((option, optionIndex) => (
+
+ ))}
+
+ )}
+
+ ))
+ : null}
+
+ {card.payload.kind === "checkbox"
+ ? card.payload.options.map((option, index) => (
+
+ ))
+ : null}
+
+ {card.payload.kind === "suggest_tasks"
+ ? card.payload.tasks.map((task) => (
+
+ ))
+ : null}
+
+ {card.payload.kind === "item_verdicts"
+ ? card.payload.items.map((item) => (
+
+
+ {item.title}
+
+
+ {(["approve", "reject", "defer"] as const).map((verdict) => (
+
+ ))}
+
+ {item.requireReason === true ? (
+
+ ))
+ : null}
+
+ {card.payload.kind === "confirmation" && card.payload.requireRejectReason ? (
+
+
+
+ ) : null}
+
+ {error !== null ? (
+
+ {error}
+
+ ) : null}
+
+
+ {card.payload.kind === "confirmation" ? (
+ <>
+
+
+ >
+ ) : null}
+
+ {card.payload.kind === "questions" ? (
+
+ ) : null}
+
+ {card.payload.kind === "checkbox" ? (
+ <>
+
+
+ >
+ ) : null}
+
+ {card.payload.kind === "suggest_tasks" ? (
+
+ ) : null}
+
+ {card.payload.kind === "item_verdicts" ? (
+
+ ) : null}
+
+
+ )}
+
+