feat(ui): support custom answers in preview questions

This commit is contained in:
Erik Kotsiuba
2026-04-25 20:01:43 +02:00
parent 1ce721094c
commit 7cca5eb54d
9 changed files with 135 additions and 19 deletions
+6 -1
View File
@@ -255,7 +255,11 @@ export function renderBox(
export function renderPreviewPaneContent(
selectedOption:
| { label: string; description?: string; preview?: string }
| {
label: string;
description?: string;
preview?: string;
}
| undefined,
theme: Theme,
width: number
@@ -271,6 +275,7 @@ export function renderPreviewPaneContent(
content.push({ text: selectedOption.description, color: "muted" });
}
content.push({ text: "", color: "dim" });
for (const previewLine of (selectedOption.preview ?? NO_PREVIEW_TEXT).split(
"\n"
)) {
+5 -2
View File
@@ -124,7 +124,9 @@ function renderPreviewQuestion(context: QuestionRenderContext) {
const selectedOption = options[state.activeOptionIndex];
const answer = getAnswer(state, question.id);
if (width >= UI_DIMENSIONS.previewWideMinWidth && options.length > 0) {
if (selectedOption?.isCustomOption) {
renderPreviewOptionList(state, options, theme, width, answer).forEach(add);
} else if (width >= UI_DIMENSIONS.previewWideMinWidth && options.length > 0) {
renderWidePreviewLayout(
add,
state,
@@ -151,7 +153,8 @@ function renderPreviewQuestion(context: QuestionRenderContext) {
questionId: question.id,
answer,
option: selectedOption,
withGap: true,
selected: true,
withGap: !selectedOption?.isCustomOption,
});
}