File size: 1,159 Bytes
5a88b6d
 
 
529c982
afdd8ce
5a88b6d
 
 
 
 
 
 
 
 
 
 
 
c7d096e
5a88b6d
 
 
afdd8ce
 
5a88b6d
afdd8ce
 
 
 
 
 
 
 
 
 
 
 
5a88b6d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
'use client';

import { QuestionType, QuestionParameters } from '@/types/quiz';
import { questionTypeConfigs, defaultQuestionTypeConfig } from '@/config/questionTypes';
import ParameterInput from './ParameterInput';

interface QuestionParameterFormProps {
  questionType: QuestionType;
  parameters: QuestionParameters;
  onParametersChange: (parameters: QuestionParameters) => void;
}

export default function QuestionParameterForm({
  questionType,
  parameters,
  onParametersChange,
}: QuestionParameterFormProps) {
  const updateParameter = (key: string, value: string | number | boolean | string[]) => {
    onParametersChange({ ...parameters, [key]: value });
  };

  // Get configuration for this question type, fallback to default
  const config = questionTypeConfigs[questionType.id] || defaultQuestionTypeConfig;

  return (
    <div className="space-y-4">
      {config.parameters.map((paramConfig) => (
        <ParameterInput
          key={paramConfig.key}
          config={paramConfig}
          value={parameters[paramConfig.key]}
          onChange={(value) => updateParameter(paramConfig.key, value)}
        />
      ))}
    </div>
  );
}