TBX Docs
ExercisesHooks

usePickMultiExercise

Single or multiple selections per slot

Used by PickOne, PickMulti, and YesNo. Accepts solution, initial, and optional compare function.

Key returns

PropertyDescription
answersCurrent selections per slot
setAnswerSet selection for a slot
isCorrectWhether selections match solution
checkValidate answers
resetReset to initial state

Example

import { usePickMultiExercise } from '@bside-tech/tbx-ui/hooks';

// YesNo: each slot is true or false
const { answers, setAnswer, isCorrect, check, reset } = usePickMultiExercise({
  solution: [true, false, true],
  initial: [false, false, false],
  checkOn: 'manual',
});

// PickOne/PickMulti: each slot has a value (string, number, etc.)
const { answers: picks, setAnswer: setPick } = usePickMultiExercise({
  solution: ['paris', 'mercury'],
  initial: '',
  checkOn: 'auto',
});

// Set answer for slot 0
setAnswer(0, true);
setPick(0, 'paris');

// Custom compare for complex values
usePickMultiExercise({
  solution: [{ id: 1 }, { id: 2 }],
  compare: (a, s) => a?.id === s?.id,
});

On this page