40227-vm/frontend/src/components/frameworks/PersonalityQuiz.tsx

43 lines
1.2 KiB
TypeScript

import { usePersonalityQuizWorkflow } from '@/business/personality/quizWorkflowHooks';
import { PersonalityQuizView } from '@/components/personality-quiz/PersonalityQuizView';
import type { QuizQuestion } from '@/shared/constants/personalityCatalog';
interface PersonalityQuizProps {
readonly onViewDirectory: () => void;
readonly onResult?: (code: string, answers: Record<number, string>) => void | Promise<void>;
readonly savedType?: string | null;
readonly savedAnswers?: Record<number, string> | null;
readonly savedDate?: string | null;
readonly isSaving?: boolean;
readonly canPersistResult?: boolean;
readonly questions?: readonly QuizQuestion[];
}
export default function PersonalityQuiz({
onViewDirectory,
onResult,
savedType,
savedAnswers,
savedDate,
isSaving = false,
canPersistResult = true,
questions,
}: PersonalityQuizProps) {
const workflow = usePersonalityQuizWorkflow({
onResult,
savedType,
savedAnswers,
questions,
});
return (
<PersonalityQuizView
workflow={workflow}
onViewDirectory={onViewDirectory}
savedDate={savedDate}
isSaving={isSaving}
canPersistResult={canPersistResult}
/>
);
}