diff --git a/src/modules/quizzes.js b/src/modules/quizzes.js index 9c13297c..51b88786 100644 --- a/src/modules/quizzes.js +++ b/src/modules/quizzes.js @@ -61,7 +61,7 @@ function createQuizUrl(quizId, parameters, options, path) { // Pull a (answers) from parameters and transform if (answers && answers.length) { - answersParamString = `&${helpers.stringify({ a: answers.map((ans) => [...ans].join(',')) })}`; + answersParamString = `&${helpers.stringify({ a: answers.map((ans) => [...ans.map(encodeURIComponent)].join(',')) })}`; } // Pull page from parameters diff --git a/src/types/quizzes.d.ts b/src/types/quizzes.d.ts index 43ae4eb8..39141ca3 100644 --- a/src/types/quizzes.d.ts +++ b/src/types/quizzes.d.ts @@ -115,7 +115,7 @@ export interface QuizResultData extends Record { variations: Record[]; } -export type Question = SelectQuestion | OpenQuestion | CoverQuestion; +export type Question = SelectQuestion | FilterValueQuestion | OpenQuestion | CoverQuestion; export interface BaseQuestion extends Record { id: number; @@ -125,6 +125,12 @@ export interface BaseQuestion extends Record { images?: Nullable; } +export interface FilterValueQuestion extends BaseQuestion { + type: 'single_filter_value' |'multiple_filter_values'; + filter_name: string; + options: QuestionOption[]; +} + export interface SelectQuestion extends BaseQuestion { type: 'single' | 'multiple'; options: QuestionOption[]; diff --git a/src/types/tests/quizzes.test-d.ts b/src/types/tests/quizzes.test-d.ts index 2d05c391..975b3fc1 100644 --- a/src/types/tests/quizzes.test-d.ts +++ b/src/types/tests/quizzes.test-d.ts @@ -293,7 +293,7 @@ expectAssignable({ is_active: true, text: 'Sample response summary', items_separator: ',', - last_separator: 'and' + last_separator: 'and', }, }, },