"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;