@constructor-io/constructorio-ui-quizzes 1.8.3 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constructorio-ui-quizzes-bundled.js +20 -20
- package/lib/cjs/package.json +1 -1
- package/lib/cjs/src/components/CioQuiz/actions.js +1 -0
- package/lib/cjs/src/components/CioQuiz/index.js +2 -1
- package/lib/cjs/src/components/CioQuiz/quizLocalReducer.js +21 -0
- package/lib/cjs/src/components/ControlBar/ControlBar.js +5 -2
- package/lib/cjs/src/components/SkipButton/SkipButton.js +13 -0
- package/lib/cjs/src/constants.js +2 -0
- package/lib/cjs/src/hooks/usePropsGetters/index.js +4 -1
- package/lib/cjs/src/hooks/usePropsGetters/useSkipQuestionButtonProps.js +21 -0
- package/lib/cjs/src/hooks/useQuizEvents/index.js +3 -0
- package/lib/cjs/src/hooks/useQuizEvents/useQuizSkipClick.js +31 -0
- package/lib/cjs/src/stories/Quiz/tests/mocks.js +1 -0
- package/lib/cjs/src/utils.js +1 -0
- package/lib/mjs/package.json +1 -1
- package/lib/mjs/src/components/CioQuiz/actions.js +1 -0
- package/lib/mjs/src/components/CioQuiz/index.js +2 -1
- package/lib/mjs/src/components/CioQuiz/quizLocalReducer.js +25 -0
- package/lib/mjs/src/components/ControlBar/ControlBar.js +5 -2
- package/lib/mjs/src/components/SkipButton/SkipButton.js +10 -0
- package/lib/mjs/src/constants.js +2 -0
- package/lib/mjs/src/hooks/usePropsGetters/index.js +4 -1
- package/lib/mjs/src/hooks/usePropsGetters/useSkipQuestionButtonProps.js +17 -0
- package/lib/mjs/src/hooks/useQuizEvents/index.js +3 -0
- package/lib/mjs/src/hooks/useQuizEvents/useQuizSkipClick.js +31 -0
- package/lib/mjs/src/stories/Quiz/tests/mocks.js +4 -0
- package/lib/mjs/src/utils.js +1 -0
- package/lib/styles.css +35 -1
- package/lib/types/src/components/CioQuiz/actions.d.ts +2 -1
- package/lib/types/src/components/CioQuiz/context.d.ts +2 -1
- package/lib/types/src/components/SkipButton/SkipButton.d.ts +6 -0
- package/lib/types/src/constants.d.ts +2 -2
- package/lib/types/src/hooks/usePropsGetters/index.d.ts +2 -1
- package/lib/types/src/hooks/usePropsGetters/useSkipQuestionButtonProps.d.ts +3 -0
- package/lib/types/src/hooks/useQuizEvents/useQuizSkipClick.d.ts +6 -0
- package/lib/types/src/stories/Quiz/tests/mocks.d.ts +2 -2
- package/lib/types/src/types.d.ts +13 -1
- package/lib/types/src/utils.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GetResetQuizButtonProps, GetCoverQuestionProps, GetNextQuestionButtonProps, GetOpenTextInputProps, GetPreviousQuestionButtonProps, GetQuizImageProps, GetSelectInputProps, QuizEventsReturn, GetHydrateQuizButtonProps, GetAddToCartButtonProps, GetQuizResultButtonProps, GetQuizResultLinkProps, GetSelectQuestionImageProps, GetAddToFavoritesButtonProps } from '../../types';
|
|
1
|
+
import { GetResetQuizButtonProps, GetCoverQuestionProps, GetNextQuestionButtonProps, GetOpenTextInputProps, GetPreviousQuestionButtonProps, GetQuizImageProps, GetSelectInputProps, QuizEventsReturn, GetHydrateQuizButtonProps, GetAddToCartButtonProps, GetQuizResultButtonProps, GetQuizResultLinkProps, GetSelectQuestionImageProps, GetAddToFavoritesButtonProps, GetSkipQuestionButtonProps } from '../../types';
|
|
2
2
|
import { QuizAPIReducerState } from '../../components/CioQuiz/quizApiReducer';
|
|
3
3
|
import { QuizLocalReducerState } from '../../components/CioQuiz/quizLocalReducer';
|
|
4
4
|
declare const usePropsGetters: (quizEvents: QuizEventsReturn, quizApiState: QuizAPIReducerState, quizLocalState: QuizLocalReducerState) => {
|
|
@@ -15,5 +15,6 @@ declare const usePropsGetters: (quizEvents: QuizEventsReturn, quizApiState: Quiz
|
|
|
15
15
|
getAddToFavoritesButtonProps: GetAddToFavoritesButtonProps;
|
|
16
16
|
getQuizResultButtonProps: GetQuizResultButtonProps;
|
|
17
17
|
getQuizResultLinkProps: GetQuizResultLinkProps;
|
|
18
|
+
getSkipQuestionButtonProps: GetSkipQuestionButtonProps;
|
|
18
19
|
};
|
|
19
20
|
export default usePropsGetters;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { QuizAPIReducerState } from '../../components/CioQuiz/quizApiReducer';
|
|
2
|
+
import { GetSkipQuestionButtonProps, QuizEventsReturn } from '../../types';
|
|
3
|
+
export default function useSkipQuestionButtonProps(skipQuestion: QuizEventsReturn.SkipQuestion, quizApiState: QuizAPIReducerState): GetSkipQuestionButtonProps;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ActionAnswerQuestion } from '../../components/CioQuiz/actions';
|
|
2
|
+
import { QuizAPIReducerState } from '../../components/CioQuiz/quizApiReducer';
|
|
3
|
+
import { QuizLocalReducerState } from '../../components/CioQuiz/quizLocalReducer';
|
|
4
|
+
import { QuizEventsReturn, OnQuizSkipQuestion } from '../../types';
|
|
5
|
+
declare const useQuizSkipClick: (quizApiState: QuizAPIReducerState, quizLocalState: QuizLocalReducerState, dispatchLocalState: React.Dispatch<ActionAnswerQuestion>, onQuizSkipQuestion?: OnQuizSkipQuestion) => QuizEventsReturn.NextQuestion;
|
|
6
|
+
export default useQuizSkipClick;
|
|
@@ -7,7 +7,7 @@ export declare const getMockQuestion: (type: `${QuestionTypes}`) => {
|
|
|
7
7
|
title: string;
|
|
8
8
|
description: string;
|
|
9
9
|
cta_text: string;
|
|
10
|
-
type: "reset" | "open" | "cover" | "single" | "multiple" | "next" | "back" | "hydrate" | "complete";
|
|
10
|
+
type: "reset" | "open" | "cover" | "single" | "multiple" | "next" | "skip" | "back" | "hydrate" | "complete";
|
|
11
11
|
input_placeholder: string;
|
|
12
12
|
};
|
|
13
13
|
export declare const getMockQuestionWithImage: (type: QuestionTypes) => {
|
|
@@ -18,7 +18,7 @@ export declare const getMockQuestionWithImage: (type: QuestionTypes) => {
|
|
|
18
18
|
title: string;
|
|
19
19
|
description: string;
|
|
20
20
|
cta_text: string;
|
|
21
|
-
type: "reset" | "open" | "cover" | "single" | "multiple" | "next" | "back" | "hydrate" | "complete";
|
|
21
|
+
type: "reset" | "open" | "cover" | "single" | "multiple" | "next" | "skip" | "back" | "hydrate" | "complete";
|
|
22
22
|
input_placeholder: string;
|
|
23
23
|
};
|
|
24
24
|
export declare const questionOptionsWithImages: {
|
package/lib/types/src/types.d.ts
CHANGED
|
@@ -34,8 +34,10 @@ export type QuestionWithAnswer = Question & {
|
|
|
34
34
|
answer: AnswerInput;
|
|
35
35
|
};
|
|
36
36
|
export type OnQuizNextQuestion = (question: QuestionWithAnswer) => void;
|
|
37
|
+
export type OnQuizSkipQuestion = (question: QuestionWithAnswer) => void;
|
|
37
38
|
export interface Callbacks {
|
|
38
39
|
onQuizNextQuestion?: OnQuizNextQuestion;
|
|
40
|
+
onQuizSkipQuestion?: OnQuizSkipQuestion;
|
|
39
41
|
}
|
|
40
42
|
export interface IQuizProps {
|
|
41
43
|
apiKey?: string;
|
|
@@ -65,7 +67,7 @@ export interface QuizReturnState {
|
|
|
65
67
|
}
|
|
66
68
|
export type AnswerInput = {
|
|
67
69
|
type: InputQuestionsTypes;
|
|
68
|
-
value: string | string[];
|
|
70
|
+
value: string | string[] | null;
|
|
69
71
|
};
|
|
70
72
|
export type AnswerInputState = {
|
|
71
73
|
[key: string]: AnswerInput;
|
|
@@ -87,6 +89,7 @@ export type CurrentQuestion = NextQuestionResponse & {
|
|
|
87
89
|
export declare namespace QuizEventsReturn {
|
|
88
90
|
type QuizAnswerChanged = (payload?: string | string[]) => void;
|
|
89
91
|
type NextQuestion = () => void;
|
|
92
|
+
type SkipQuestion = () => void;
|
|
90
93
|
type PreviousQuestion = () => void;
|
|
91
94
|
type ResetQuiz = () => void;
|
|
92
95
|
type ResultClick = (result: QuizResultDataPartial, position: number) => void;
|
|
@@ -97,6 +100,7 @@ export declare namespace QuizEventsReturn {
|
|
|
97
100
|
}
|
|
98
101
|
export interface QuizEventsReturn {
|
|
99
102
|
nextQuestion: QuizEventsReturn.NextQuestion;
|
|
103
|
+
skipQuestion: QuizEventsReturn.SkipQuestion;
|
|
100
104
|
quizAnswerChanged: QuizEventsReturn.QuizAnswerChanged;
|
|
101
105
|
previousQuestion: QuizEventsReturn.PreviousQuestion;
|
|
102
106
|
resetQuiz: QuizEventsReturn.ResetQuiz;
|
|
@@ -121,6 +125,12 @@ export interface NextQuestionButtonProps {
|
|
|
121
125
|
disabled?: boolean;
|
|
122
126
|
onClick: React.MouseEventHandler<HTMLElement>;
|
|
123
127
|
}
|
|
128
|
+
export interface SkipQuestionButtonProps {
|
|
129
|
+
className: string;
|
|
130
|
+
type: 'submit' | 'reset' | 'button' | undefined;
|
|
131
|
+
disabled?: boolean;
|
|
132
|
+
onClick: React.MouseEventHandler<HTMLElement>;
|
|
133
|
+
}
|
|
124
134
|
export interface PreviousQuestionButtonProps {
|
|
125
135
|
className: string;
|
|
126
136
|
type: 'submit' | 'reset' | 'button' | undefined;
|
|
@@ -175,6 +185,7 @@ export type GetOpenTextInputProps = () => OpenTextInputProps;
|
|
|
175
185
|
export type GetCoverQuestionProps = () => CoverQuestionProps;
|
|
176
186
|
export type GetSelectInputProps = (option: QuestionOption) => SelectInputProps;
|
|
177
187
|
export type GetNextQuestionButtonProps = () => NextQuestionButtonProps;
|
|
188
|
+
export type GetSkipQuestionButtonProps = () => SkipQuestionButtonProps;
|
|
178
189
|
export type GetPreviousQuestionButtonProps = () => PreviousQuestionButtonProps;
|
|
179
190
|
export type GetResetQuizButtonProps = (stylesType?: 'primary' | 'secondary') => ResetQuizButtonProps;
|
|
180
191
|
export type GetHydrateQuizButtonProps = () => HydrateQuizButtonProps;
|
|
@@ -200,6 +211,7 @@ export interface UseQuizReturn {
|
|
|
200
211
|
events: QuizEventsReturn;
|
|
201
212
|
getOpenTextInputProps: GetOpenTextInputProps;
|
|
202
213
|
getNextQuestionButtonProps: GetNextQuestionButtonProps;
|
|
214
|
+
getSkipQuestionButtonProps: GetSkipQuestionButtonProps;
|
|
203
215
|
getPreviousQuestionButtonProps: GetPreviousQuestionButtonProps;
|
|
204
216
|
getQuizImageProps: GetQuizImageProps;
|
|
205
217
|
getSelectQuestionImageProps: GetSelectQuestionImageProps;
|
package/lib/types/src/utils.d.ts
CHANGED