"use client"; import type { QuestionField } from "@/lib/schema-adapter"; import QuestionBirthplace from "./question-birthplace"; import QuestionButton from "./question-button"; import QuestionCheckbox from "./question-checkbox"; import QuestionDate from "./question-date"; import QuestionSheet from "./question-sheet"; import QuestionFile from "./question-file"; import QuestionNumber from "./question-number"; import QuestionPhone from "./question-phone"; import QuestionPhoto from "./question-photo"; import QuestionRadio from "./question-radio"; import QuestionSlider from "./question-slider"; import QuestionText from "./question-text"; import QuestionTextarea from "./question-textarea"; type QuestionRendererProps = { question: QuestionField; disabled?: boolean; dobQuestion?: QuestionField; }; export function QuestionRenderer({ question, disabled, dobQuestion, }: QuestionRendererProps) { const compactTextHeight = question.type === "email" || question.ui_config?.compact === true ? "h-[54px]" : undefined; switch (question.type) { case "birthplace": case "location": case "residence": return ( ); case "button": return ( ); case "checkbox": return ( ); case "date": return ( ); case "dropdown": return ( ); case "file": return ( ); case "number": if ( question.ui_config?.derivedFromDob === true && dobQuestion ) { return ( ); } return ( ); case "phone": return ( ); case "photo": return ( ); case "radio": return ( ); case "slider": case "scale": case "range": return ( ); case "text": if ( question.ui_config?.enable_geoip === true || question.ui_config?.location_kind === "residence" || question.id?.includes("approximate_location_of_current_living_area") || question.id?.includes("current_residence") || question.id?.includes("living_area") ) { return ( ); } return ( ); case "textarea": return ( ); default: return null; } } export default QuestionRenderer;