ExercisesHooks
usePickMultiExercise
Single or multiple selections per slot
Used by PickOne, PickMulti, and YesNo. Accepts solution, initial, and optional compare function.
Key returns
| Property | Description |
|---|---|
answers | Current selections per slot |
setAnswer | Set selection for a slot |
isCorrect | Whether selections match solution |
check | Validate answers |
reset | Reset 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,
});