analytica-frontend-lib 1.1.31 → 1.1.32
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/Quiz/index.js +40 -0
- package/dist/Quiz/index.js.map +1 -1
- package/dist/Quiz/index.mjs +40 -0
- package/dist/Quiz/index.mjs.map +1 -1
- package/dist/Quiz/useQuizStore/index.d.mts +6 -1
- package/dist/Quiz/useQuizStore/index.d.ts +6 -1
- package/dist/Quiz/useQuizStore/index.js +42 -0
- package/dist/Quiz/useQuizStore/index.js.map +1 -1
- package/dist/Quiz/useQuizStore/index.mjs +41 -0
- package/dist/Quiz/useQuizStore/index.mjs.map +1 -1
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +40 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/Quiz/index.mjs
CHANGED
|
@@ -945,10 +945,12 @@ import {
|
|
|
945
945
|
// src/components/Quiz/useQuizStore.ts
|
|
946
946
|
import { create as create2 } from "zustand";
|
|
947
947
|
import { devtools } from "zustand/middleware";
|
|
948
|
+
var MINUTE_INTERVAL_MS = 6e4;
|
|
948
949
|
var useQuizStore = create2()(
|
|
949
950
|
devtools(
|
|
950
951
|
(set, get) => {
|
|
951
952
|
let timerInterval = null;
|
|
953
|
+
let minuteCallbackInterval = null;
|
|
952
954
|
const startTimer = () => {
|
|
953
955
|
if (get().isFinished) {
|
|
954
956
|
return;
|
|
@@ -967,6 +969,35 @@ var useQuizStore = create2()(
|
|
|
967
969
|
timerInterval = null;
|
|
968
970
|
}
|
|
969
971
|
};
|
|
972
|
+
const setMinuteCallback = (callback) => {
|
|
973
|
+
set({ minuteCallback: callback });
|
|
974
|
+
};
|
|
975
|
+
const startMinuteCallback = () => {
|
|
976
|
+
const { minuteCallback, isFinished } = get();
|
|
977
|
+
if (isFinished || !minuteCallback) {
|
|
978
|
+
return;
|
|
979
|
+
}
|
|
980
|
+
if (minuteCallbackInterval) {
|
|
981
|
+
clearInterval(minuteCallbackInterval);
|
|
982
|
+
}
|
|
983
|
+
minuteCallbackInterval = setInterval(() => {
|
|
984
|
+
const {
|
|
985
|
+
minuteCallback: currentCallback,
|
|
986
|
+
isFinished: currentIsFinished
|
|
987
|
+
} = get();
|
|
988
|
+
if (currentIsFinished || !currentCallback) {
|
|
989
|
+
stopMinuteCallback();
|
|
990
|
+
return;
|
|
991
|
+
}
|
|
992
|
+
currentCallback();
|
|
993
|
+
}, MINUTE_INTERVAL_MS);
|
|
994
|
+
};
|
|
995
|
+
const stopMinuteCallback = () => {
|
|
996
|
+
if (minuteCallbackInterval) {
|
|
997
|
+
clearInterval(minuteCallbackInterval);
|
|
998
|
+
minuteCallbackInterval = null;
|
|
999
|
+
}
|
|
1000
|
+
};
|
|
970
1001
|
return {
|
|
971
1002
|
// Initial State
|
|
972
1003
|
currentQuestionIndex: 0,
|
|
@@ -977,6 +1008,7 @@ var useQuizStore = create2()(
|
|
|
977
1008
|
isFinished: false,
|
|
978
1009
|
userId: "",
|
|
979
1010
|
variant: "default",
|
|
1011
|
+
minuteCallback: null,
|
|
980
1012
|
questionsResult: null,
|
|
981
1013
|
currentQuestionResult: null,
|
|
982
1014
|
// Setters
|
|
@@ -1211,13 +1243,16 @@ var useQuizStore = create2()(
|
|
|
1211
1243
|
startQuiz: () => {
|
|
1212
1244
|
set({ isStarted: true, timeElapsed: 0 });
|
|
1213
1245
|
startTimer();
|
|
1246
|
+
startMinuteCallback();
|
|
1214
1247
|
},
|
|
1215
1248
|
finishQuiz: () => {
|
|
1216
1249
|
set({ isFinished: true });
|
|
1217
1250
|
stopTimer();
|
|
1251
|
+
stopMinuteCallback();
|
|
1218
1252
|
},
|
|
1219
1253
|
resetQuiz: () => {
|
|
1220
1254
|
stopTimer();
|
|
1255
|
+
stopMinuteCallback();
|
|
1221
1256
|
set({
|
|
1222
1257
|
currentQuestionIndex: 0,
|
|
1223
1258
|
selectedAnswers: {},
|
|
@@ -1227,6 +1262,7 @@ var useQuizStore = create2()(
|
|
|
1227
1262
|
isFinished: false,
|
|
1228
1263
|
userId: "",
|
|
1229
1264
|
variant: "default",
|
|
1265
|
+
minuteCallback: null,
|
|
1230
1266
|
questionsResult: null,
|
|
1231
1267
|
currentQuestionResult: null
|
|
1232
1268
|
});
|
|
@@ -1235,6 +1271,10 @@ var useQuizStore = create2()(
|
|
|
1235
1271
|
updateTime: (time) => set({ timeElapsed: time }),
|
|
1236
1272
|
startTimer,
|
|
1237
1273
|
stopTimer,
|
|
1274
|
+
// Minute Callback
|
|
1275
|
+
setMinuteCallback,
|
|
1276
|
+
startMinuteCallback,
|
|
1277
|
+
stopMinuteCallback,
|
|
1238
1278
|
// Getters
|
|
1239
1279
|
getCurrentQuestion: () => {
|
|
1240
1280
|
const { currentQuestionIndex, getActiveQuiz } = get();
|