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/index.mjs CHANGED
@@ -8057,10 +8057,12 @@ var ANSWER_STATUS = /* @__PURE__ */ ((ANSWER_STATUS2) => {
8057
8057
  ANSWER_STATUS2["NAO_RESPONDIDO"] = "NAO_RESPONDIDO";
8058
8058
  return ANSWER_STATUS2;
8059
8059
  })(ANSWER_STATUS || {});
8060
+ var MINUTE_INTERVAL_MS = 6e4;
8060
8061
  var useQuizStore = create7()(
8061
8062
  devtools(
8062
8063
  (set, get) => {
8063
8064
  let timerInterval = null;
8065
+ let minuteCallbackInterval = null;
8064
8066
  const startTimer = () => {
8065
8067
  if (get().isFinished) {
8066
8068
  return;
@@ -8079,6 +8081,35 @@ var useQuizStore = create7()(
8079
8081
  timerInterval = null;
8080
8082
  }
8081
8083
  };
8084
+ const setMinuteCallback = (callback) => {
8085
+ set({ minuteCallback: callback });
8086
+ };
8087
+ const startMinuteCallback = () => {
8088
+ const { minuteCallback, isFinished } = get();
8089
+ if (isFinished || !minuteCallback) {
8090
+ return;
8091
+ }
8092
+ if (minuteCallbackInterval) {
8093
+ clearInterval(minuteCallbackInterval);
8094
+ }
8095
+ minuteCallbackInterval = setInterval(() => {
8096
+ const {
8097
+ minuteCallback: currentCallback,
8098
+ isFinished: currentIsFinished
8099
+ } = get();
8100
+ if (currentIsFinished || !currentCallback) {
8101
+ stopMinuteCallback();
8102
+ return;
8103
+ }
8104
+ currentCallback();
8105
+ }, MINUTE_INTERVAL_MS);
8106
+ };
8107
+ const stopMinuteCallback = () => {
8108
+ if (minuteCallbackInterval) {
8109
+ clearInterval(minuteCallbackInterval);
8110
+ minuteCallbackInterval = null;
8111
+ }
8112
+ };
8082
8113
  return {
8083
8114
  // Initial State
8084
8115
  currentQuestionIndex: 0,
@@ -8089,6 +8120,7 @@ var useQuizStore = create7()(
8089
8120
  isFinished: false,
8090
8121
  userId: "",
8091
8122
  variant: "default",
8123
+ minuteCallback: null,
8092
8124
  questionsResult: null,
8093
8125
  currentQuestionResult: null,
8094
8126
  // Setters
@@ -8323,13 +8355,16 @@ var useQuizStore = create7()(
8323
8355
  startQuiz: () => {
8324
8356
  set({ isStarted: true, timeElapsed: 0 });
8325
8357
  startTimer();
8358
+ startMinuteCallback();
8326
8359
  },
8327
8360
  finishQuiz: () => {
8328
8361
  set({ isFinished: true });
8329
8362
  stopTimer();
8363
+ stopMinuteCallback();
8330
8364
  },
8331
8365
  resetQuiz: () => {
8332
8366
  stopTimer();
8367
+ stopMinuteCallback();
8333
8368
  set({
8334
8369
  currentQuestionIndex: 0,
8335
8370
  selectedAnswers: {},
@@ -8339,6 +8374,7 @@ var useQuizStore = create7()(
8339
8374
  isFinished: false,
8340
8375
  userId: "",
8341
8376
  variant: "default",
8377
+ minuteCallback: null,
8342
8378
  questionsResult: null,
8343
8379
  currentQuestionResult: null
8344
8380
  });
@@ -8347,6 +8383,10 @@ var useQuizStore = create7()(
8347
8383
  updateTime: (time) => set({ timeElapsed: time }),
8348
8384
  startTimer,
8349
8385
  stopTimer,
8386
+ // Minute Callback
8387
+ setMinuteCallback,
8388
+ startMinuteCallback,
8389
+ stopMinuteCallback,
8350
8390
  // Getters
8351
8391
  getCurrentQuestion: () => {
8352
8392
  const { currentQuestionIndex, getActiveQuiz } = get();