computeDisplayable method

void computeDisplayable(
  1. QuizModel quiz
)

used to filter out only the displayable question among all questions

Implementation

void computeDisplayable(QuizModel quiz) {
  int internalCount = 0;
  int conditionalHiddenCount = 0;

  var displayables = <QuizQuestionModel>[];

  for (var question in allQuestions) {
    if (question.internal == true) {
      internalCount++;
      continue;
    }

    if (!quiz.getDisplayCondition(question.displayCondition)) {
      conditionalHiddenCount++;
      continue;
    }

    displayables.add(question);
  }

  _displayableQuestions = List.of(displayables);

  bool isCurrentStep = stepKey == quiz.currentDisplayedStep.stepKey;

  // ignore: dead_code
  if (kDebugMode && isCurrentStep && false) {
    debugPrint('Step ${quiz.getCurrentStepIndex()} (key: $stepKey) : ');
    debugPrint(' 🔹 ${allQuestions.length} questions including :');
    debugPrint('      🔸 ${displayables.length} displayables');
    debugPrint('      🔸 $conditionalHiddenCount conditionals');
    debugPrint('      🔸 $internalCount internals');
    debugPrint('----------------------------------------------------------------------');
  }
}