@cuemath/leap 3.0.27-aa8 → 3.0.27-beta-0.2

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.
Files changed (92) hide show
  1. package/dist/assets/line-icons/icons/check.js +3 -3
  2. package/dist/assets/line-icons/icons/check.js.map +1 -1
  3. package/dist/features/cue-canvas/cue-canvas-context.js +5 -8
  4. package/dist/features/cue-canvas/cue-canvas-context.js.map +1 -1
  5. package/dist/features/cue-canvas/cue-canvas-core.js +63 -65
  6. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  7. package/dist/features/cue-canvas/cue-canvas-helpers.js +25 -31
  8. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  9. package/dist/features/cue-canvas/cue-canvas-provider.js +12 -14
  10. package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
  11. package/dist/features/cue-canvas/cue-canvas.js +66 -85
  12. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  13. package/dist/features/cue-canvas/cue-cavas-styled.js +42 -45
  14. package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
  15. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +54 -61
  16. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  17. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js +14 -18
  18. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js.map +1 -1
  19. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js +53 -50
  20. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
  21. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js +24 -22
  22. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js.map +1 -1
  23. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js +50 -47
  24. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js.map +1 -1
  25. package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js.map +1 -1
  26. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js +23 -21
  27. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js.map +1 -1
  28. package/dist/features/milestone/create/milestone-create-helpers.js +133 -133
  29. package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
  30. package/dist/features/ui/error/error.js +20 -20
  31. package/dist/features/ui/error/error.js.map +1 -1
  32. package/dist/features/ui/stepper/stepper.js +7 -7
  33. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js +19 -22
  34. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  35. package/dist/features/worksheet/worksheet/worksheet-helpers.js +57 -58
  36. package/dist/features/worksheet/worksheet/worksheet-helpers.js.map +1 -1
  37. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js +90 -94
  38. package/dist/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.js.map +1 -1
  39. package/dist/index.d.ts +3 -50
  40. package/dist/index.js +180 -184
  41. package/dist/index.js.map +1 -1
  42. package/package.json +1 -2
  43. package/dist/assets/line-icons/icons/puzzle-icon.js +0 -51
  44. package/dist/assets/line-icons/icons/puzzle-icon.js.map +0 -1
  45. package/dist/assets/line-icons/icons/share.js +0 -48
  46. package/dist/assets/line-icons/icons/share.js.map +0 -1
  47. package/dist/assets/line-icons/icons/tile.js +0 -54
  48. package/dist/assets/line-icons/icons/tile.js.map +0 -1
  49. package/dist/features/cue-canvas/bottombar/homework-controls.js +0 -73
  50. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +0 -1
  51. package/dist/features/cue-canvas/hooks/use-upload-helper.js +0 -23
  52. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +0 -1
  53. package/dist/features/cue-canvas/sidebar/homework/helper.js +0 -20
  54. package/dist/features/cue-canvas/sidebar/homework/helper.js.map +0 -1
  55. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +0 -33
  56. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +0 -1
  57. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +0 -68
  58. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +0 -1
  59. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +0 -25
  60. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +0 -1
  61. package/dist/features/cue-canvas/sidebar/homework/homework.js +0 -39
  62. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +0 -1
  63. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js +0 -13
  64. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +0 -1
  65. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js +0 -60
  66. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +0 -1
  67. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js +0 -44
  68. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +0 -1
  69. package/dist/features/cue-canvas/sidebar/puzzles/filters.js +0 -107
  70. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +0 -1
  71. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js +0 -42
  72. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +0 -1
  73. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js +0 -84
  74. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +0 -1
  75. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js +0 -36
  76. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +0 -1
  77. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js +0 -133
  78. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +0 -1
  79. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js +0 -96
  80. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js.map +0 -1
  81. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js +0 -29
  82. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +0 -1
  83. package/dist/features/cue-canvas/sidebar/puzzles/utils.js +0 -120
  84. package/dist/features/cue-canvas/sidebar/puzzles/utils.js.map +0 -1
  85. package/dist/features/cue-canvas/sidebar/sidebar-styled.js +0 -32
  86. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +0 -1
  87. package/dist/features/cue-canvas/sidebar/sidebar.js +0 -29
  88. package/dist/features/cue-canvas/sidebar/sidebar.js.map +0 -1
  89. package/dist/features/cue-canvas/sidebar/tiles/tile.js +0 -16
  90. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +0 -1
  91. package/dist/features/hooks/use-debounce.js +0 -16
  92. package/dist/features/hooks/use-debounce.js.map +0 -1
@@ -1,54 +1,53 @@
1
1
  import { useCallback as c } from "react";
2
- import { useErrorBoundary as ot } from "react-error-boundary";
3
- import it from "../../../hooks/use-audio-player.js";
4
- import ct from "../../constants/events.js";
5
- import { SYSTEM_VALIDATION_AUDIO_LIST as rt } from "../constants.js";
6
- import { isOkayTypeQuestion as v, getQuestionMetadata as f, scrollToQuestion as z, checkIsClozeFormulaResponseInvalid as ut } from "../worksheet-helpers.js";
7
- const kt = (B) => {
2
+ import nt from "../../../hooks/use-audio-player.js";
3
+ import it from "../../constants/events.js";
4
+ import { SYSTEM_VALIDATION_AUDIO_LIST as ot } from "../constants.js";
5
+ import { isOkayTypeQuestion as M, getQuestionMetadata as f, scrollToQuestion as $ } from "../worksheet-helpers.js";
6
+ const dt = (y) => {
8
7
  const {
9
- behavior: F,
8
+ behavior: K,
10
9
  layout: P,
11
- learnosity: a,
12
- question: C,
10
+ learnosity: l,
11
+ question: q,
13
12
  questionIndex: k,
14
13
  questions: o,
15
- getTimeSpentOnQuestion: b
16
- } = B, { setResponses: l, setSummaryVisible: q, setActiveQuestionId: S, setBlocker: d, setSkipped: N } = B, { onHelp: _, onResponseChange: n, onTeacherValidation: E, loggerRef: x } = B, { questionsScrollable: m } = P, { response_id: e, item_type: X, question_number: w, item_number: T, total_questions: H } = C, O = X === "exit-ticket", { validation: Q, teacherValidationEnabled: $ } = F, y = it(rt), { showBoundary: L } = ot(), V = c(() => {
17
- const t = a.question(e);
18
- t && Q && !v(t.getQuestion()) && t.getScore((s) => {
19
- const { max_score: i, score: r } = s || {};
20
- i && y(i === r ? "CORRECT" : "INCORRECT");
14
+ getTimeSpentOnQuestion: A
15
+ } = y, { setResponses: r, setSummaryVisible: I, setActiveQuestionId: S, setBlocker: d, setSkipped: N } = y, { onHelp: _, onResponseChange: n, onTeacherValidation: B, loggerRef: E } = y, { questionsScrollable: m } = P, { response_id: e, item_type: W, question_number: T, item_number: w, total_questions: x } = q, H = W === "exit-ticket", { validation: Q, teacherValidationEnabled: Y } = K, C = nt(ot), O = c(() => {
16
+ const t = l.question(e);
17
+ t && Q && !M(t.getQuestion()) && t.getScore((s) => {
18
+ const { max_score: i, score: u } = s || {};
19
+ i && C(i === u ? "CORRECT" : "INCORRECT");
21
20
  });
22
- }, [a, y, e, Q]), g = c(
23
- (t, s, i, r) => {
24
- const h = b(e);
25
- l((A) => {
26
- const u = A[t], I = !!r, D = {
21
+ }, [l, C, e, Q]), V = c(
22
+ (t, s, i, u) => {
23
+ const b = A(e);
24
+ r((D) => {
25
+ const a = D[t], h = !!u, L = {
27
26
  ...f(o, t),
28
- ...u,
27
+ ...a,
29
28
  response: s,
30
29
  score: i,
31
- responseEdited: !I,
32
- attemptsHistory: I ? [...(u == null ? void 0 : u.attemptsHistory) ?? [], { response: s, score: i }] : u == null ? void 0 : u.attemptsHistory,
30
+ responseEdited: !h,
31
+ attemptsHistory: h ? [...(a == null ? void 0 : a.attemptsHistory) ?? [], { response: s, score: i }] : a == null ? void 0 : a.attemptsHistory,
33
32
  skipped: !s,
34
- timeSpent: h
33
+ timeSpent: b
35
34
  };
36
35
  return n == null || n({
37
36
  responseId: t,
38
- response: D,
39
- question: o.find((nt) => nt.response_id === t),
40
- isNewAttempt: I
37
+ response: L,
38
+ question: o.find((st) => st.response_id === t),
39
+ isNewAttempt: h
41
40
  }), {
42
- ...A,
43
- [t]: D
41
+ ...D,
42
+ [t]: L
44
43
  };
45
44
  });
46
45
  },
47
- [b, n, o, e, l]
48
- ), M = c(
46
+ [A, n, o, e, r]
47
+ ), U = c(
49
48
  (t, s) => {
50
- l((i) => {
51
- const r = {
49
+ r((i) => {
50
+ const u = {
52
51
  ...f(o, t),
53
52
  ...i[t],
54
53
  validatedByTeacher: !0,
@@ -56,23 +55,23 @@ const kt = (B) => {
56
55
  };
57
56
  return n == null || n({
58
57
  responseId: t,
59
- response: r,
60
- question: o.find((h) => h.response_id === t),
58
+ response: u,
59
+ question: o.find((b) => b.response_id === t),
61
60
  isNewAttempt: !1
62
61
  }), {
63
62
  ...i,
64
- [t]: r
63
+ [t]: u
65
64
  };
66
65
  });
67
66
  },
68
- [n, o, l]
69
- ), G = c(() => {
70
- _ && C && _({
67
+ [n, o, r]
68
+ ), j = c(() => {
69
+ _ && q && _({
71
70
  questionId: e,
72
- questionNumber: `${T + 1}${H > 1 ? String.fromCharCode(97 + w) : ""}`
71
+ questionNumber: `${w + 1}${x > 1 ? String.fromCharCode(97 + T) : ""}`
73
72
  });
74
- }, [T, _, C, w, e, H]), K = c(() => {
75
- x.current(ct.WORKSHEET_V3_HINT_SEEN), l((t) => {
73
+ }, [w, _, q, T, e, x]), v = c(() => {
74
+ E.current(it.WORKSHEET_V3_HINT_SEEN), r((t) => {
76
75
  var i;
77
76
  const s = {
78
77
  ...f(o, e),
@@ -82,23 +81,23 @@ const kt = (B) => {
82
81
  return n == null || n({
83
82
  responseId: e,
84
83
  response: s,
85
- question: o.find((r) => r.response_id === e),
84
+ question: o.find((u) => u.response_id === e),
86
85
  isNewAttempt: !1
87
86
  }), {
88
87
  ...t,
89
88
  [e]: s
90
89
  };
91
90
  });
92
- }, [x, n, o, e, l]), R = c(() => {
91
+ }, [E, n, o, e, r]), z = c(() => {
93
92
  var s;
94
93
  const t = (s = o[k - 1]) == null ? void 0 : s.response_id;
95
- t && (m ? z(t) : S(t));
96
- }, [k, o, m, S]), W = c(() => {
94
+ t && (m ? $(t) : S(t));
95
+ }, [k, o, m, S]), F = c(() => {
97
96
  var s;
98
97
  const t = (s = o[k + 1]) == null ? void 0 : s.response_id;
99
- t ? m ? z(t) : S(t) : q(!0);
100
- }, [k, o, m, S, q]), Y = c(() => {
101
- l((t) => {
98
+ t ? m ? $(t) : S(t) : I(!0);
99
+ }, [k, o, m, S, I]), G = c(() => {
100
+ r((t) => {
102
101
  const s = {
103
102
  ...f(o, e),
104
103
  ...t[e],
@@ -114,46 +113,43 @@ const kt = (B) => {
114
113
  [e]: s
115
114
  };
116
115
  }), N(!0);
117
- }, [n, o, e, l, N]), p = c(
116
+ }, [n, o, e, r, N]), p = c(
118
117
  (t) => {
119
- const s = a.question(e);
120
- if (s) {
121
- const i = s.getQuestion(), r = s.getResponse();
122
- (i.type === "clozeformula" && r && (r == null ? void 0 : r.value) ? ut(r) : !1) && L(new Error("CLOZE_FORMULA_RESPONSE_EXCEEDS_MAX_LENGTH")), s.getScore((u) => {
123
- g(
124
- e,
125
- r,
126
- v(i) || !u ? {
127
- max_score: 0,
128
- score: 0,
129
- unscored: !u
130
- // score will be null for unscored questions
131
- } : { ...u, score: u.score ?? 0 },
132
- t
133
- );
134
- });
135
- }
118
+ const s = l.question(e);
119
+ s && s.getScore((i) => {
120
+ V(
121
+ e,
122
+ s.getResponse(),
123
+ M(s.getQuestion()) || !i ? {
124
+ max_score: 0,
125
+ score: 0,
126
+ unscored: !i
127
+ // score will be null for unscored questions
128
+ } : { ...i, score: i.score ?? 0 },
129
+ t
130
+ );
131
+ });
136
132
  },
137
- [a, e, L, g]
138
- ), Z = c(() => {
139
- const t = a.question(e);
133
+ [l, e, V]
134
+ ), J = c(() => {
135
+ const t = l.question(e);
140
136
  t && (t.enable(), t.resetValidationUI(), p());
141
- }, [p, a, e]), U = c(() => {
142
- V(), p(!0);
143
- }, [p, V]), j = c(() => {
144
- const t = a.question(e);
137
+ }, [p, l, e]), g = c(() => {
138
+ O(), p(!0);
139
+ }, [p, O]), X = c(() => {
140
+ const t = l.question(e);
145
141
  t && (t.disable(), t.validate(
146
142
  {
147
143
  feedbackAttempts: !0
148
144
  },
149
- U
145
+ g
150
146
  ));
151
- }, [U, a, e]), J = c(() => {
152
- O ? d("exit-ticket-review") : E == null || E(e);
153
- }, [O, E, e, d]), tt = c(() => {
154
- M(e);
155
- }, [e, M]), et = c(() => {
156
- l((t) => {
147
+ }, [g, l, e]), Z = c(() => {
148
+ H ? d("exit-ticket-review") : B == null || B(e);
149
+ }, [H, B, e, d]), R = c(() => {
150
+ U(e);
151
+ }, [e, U]), tt = c(() => {
152
+ r((t) => {
157
153
  const s = {
158
154
  ...f(o, e),
159
155
  ...t[e],
@@ -169,25 +165,25 @@ const kt = (B) => {
169
165
  [e]: s
170
166
  };
171
167
  }), d("exit-ticket-student-submission");
172
- }, [n, o, e, d, l]), st = c(() => {
168
+ }, [n, o, e, d, r]), et = c(() => {
173
169
  d("optional-items-skip");
174
170
  }, [d]);
175
171
  return {
176
172
  handleResponseChange: p,
177
- handleHelpButtonClick: _ ? G : void 0,
178
- handleHintButtonClick: K,
179
- handleBackButtonClick: !m && !$ ? R : void 0,
180
- handleNextButtonClick: W,
181
- handleRetryButtonClick: Z,
182
- handleCheckButtonClick: j,
183
- handleValidateButtonClick: J,
184
- handleStartButtonClick: tt,
185
- handleReadyButtonClick: et,
186
- handleSkipSectionButtonClick: st,
187
- handleSkipButtonClick: Y
173
+ handleHelpButtonClick: _ ? j : void 0,
174
+ handleHintButtonClick: v,
175
+ handleBackButtonClick: !m && !Y ? z : void 0,
176
+ handleNextButtonClick: F,
177
+ handleRetryButtonClick: J,
178
+ handleCheckButtonClick: X,
179
+ handleValidateButtonClick: Z,
180
+ handleStartButtonClick: R,
181
+ handleReadyButtonClick: tt,
182
+ handleSkipSectionButtonClick: et,
183
+ handleSkipButtonClick: G
188
184
  };
189
185
  };
190
186
  export {
191
- kt as default
187
+ dt as default
192
188
  };
193
189
  //# sourceMappingURL=use-handler-callbacks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-handler-callbacks.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.ts"],"sourcesContent":["import type {\n ILearnosityQuestionResponse,\n ILearnosityQuestionScore,\n IWorksheetResponse,\n} from '../worksheet-types';\nimport type { IWorksheetQuestionsControllerProps } from './worksheet-questions-controller-types';\nimport type { Dispatch, SetStateAction } from 'react';\n\nimport { useCallback } from 'react';\nimport { useErrorBoundary } from 'react-error-boundary';\n\nimport useAudioPlayer from '../../../hooks/use-audio-player';\nimport EVENTS from '../../constants/events';\nimport { SYSTEM_VALIDATION_AUDIO_LIST } from '../constants';\nimport { getQuestionMetadata, isOkayTypeQuestion, scrollToQuestion } from '../worksheet-helpers';\nimport { checkIsClozeFormulaResponseInvalid } from '../worksheet-helpers';\n\ninterface IUseHandlerCallbacks {\n (\n options: Pick<\n IWorksheetQuestionsControllerProps,\n | 'learnosity'\n | 'layout'\n | 'questionIndex'\n | 'question'\n | 'questions'\n | 'setActiveQuestionId'\n | 'setResponses'\n | 'setSummaryVisible'\n | 'setBlocker'\n | 'onHelp'\n | 'onResponseChange'\n | 'onTeacherValidation'\n | 'behavior'\n | 'loggerRef'\n | 'getTimeSpentOnQuestion'\n > & {\n setSkipped: Dispatch<SetStateAction<boolean>>;\n },\n ): {\n handleResponseChange: () => void;\n handleHelpButtonClick?: () => void;\n handleHintButtonClick: () => void;\n handleBackButtonClick?: () => void;\n handleNextButtonClick: () => void;\n handleRetryButtonClick: () => void;\n handleCheckButtonClick: () => void;\n handleValidateButtonClick: () => void;\n handleStartButtonClick: () => void;\n handleReadyButtonClick: () => void;\n handleSkipSectionButtonClick: () => void;\n handleSkipButtonClick: () => void;\n };\n}\n\nconst useHandlerCallbacks: IUseHandlerCallbacks = options => {\n const {\n behavior,\n layout,\n learnosity,\n question,\n questionIndex,\n questions,\n getTimeSpentOnQuestion,\n } = options;\n const { setResponses, setSummaryVisible, setActiveQuestionId, setBlocker, setSkipped } = options;\n const { onHelp, onResponseChange, onTeacherValidation, loggerRef } = options;\n const { questionsScrollable } = layout;\n const { response_id, item_type, question_number, item_number, total_questions } = question;\n const isExitTicket = item_type === 'exit-ticket';\n const { validation, teacherValidationEnabled } = behavior;\n const playNotifSound = useAudioPlayer(SYSTEM_VALIDATION_AUDIO_LIST);\n const { showBoundary } = useErrorBoundary();\n\n const playAudio = useCallback(() => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance && validation && !isOkayTypeQuestion(questionInstance.getQuestion())) {\n questionInstance.getScore(sc => {\n const { max_score: maxScore, score: currentScore } = sc || {};\n\n if (maxScore) {\n if (maxScore === currentScore) {\n playNotifSound('CORRECT');\n } else {\n playNotifSound('INCORRECT');\n }\n }\n });\n }\n }, [learnosity, playNotifSound, response_id, validation]);\n\n const updateResponse = useCallback(\n (\n questionId: string,\n response: ILearnosityQuestionResponse,\n score: ILearnosityQuestionScore,\n answerChecked?: boolean,\n ) => {\n const timeSpentOnQuestions = getTimeSpentOnQuestion(response_id);\n\n setResponses(prevResponses => {\n const prevResponse = prevResponses[questionId];\n const isNewAttempt = !!answerChecked;\n\n const newResponse = {\n ...getQuestionMetadata(questions, questionId),\n ...prevResponse,\n response,\n score,\n responseEdited: !isNewAttempt,\n attemptsHistory: isNewAttempt\n ? [...(prevResponse?.attemptsHistory ?? []), { response, score }]\n : prevResponse?.attemptsHistory,\n skipped: !response,\n timeSpent: timeSpentOnQuestions,\n };\n\n onResponseChange?.({\n responseId: questionId,\n response: newResponse,\n question: questions.find(q => q.response_id === questionId)!,\n isNewAttempt,\n });\n\n return {\n ...prevResponses,\n [questionId]: newResponse,\n };\n });\n },\n [getTimeSpentOnQuestion, onResponseChange, questions, response_id, setResponses],\n );\n\n const validateQuestion = useCallback(\n (questionId: string, rating?: number) => {\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(questions, questionId),\n ...prevResponses[questionId],\n validatedByTeacher: true,\n rating,\n };\n\n onResponseChange?.({\n responseId: questionId,\n response: newResponse,\n question: questions.find(q => q.response_id === questionId)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [questionId]: newResponse,\n };\n });\n },\n [onResponseChange, questions, setResponses],\n );\n\n const handleHelpButtonClick = useCallback(() => {\n if (onHelp && question) {\n onHelp({\n questionId: response_id,\n questionNumber: `${item_number + 1}${\n total_questions > 1 ? String.fromCharCode('a'.charCodeAt(0) + question_number) : ''\n }`,\n });\n }\n }, [item_number, onHelp, question, question_number, response_id, total_questions]);\n\n const handleHintButtonClick = useCallback(() => {\n loggerRef.current(EVENTS.WORKSHEET_V3_HINT_SEEN);\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(questions, response_id),\n ...prevResponses[response_id],\n hintsUsed: (prevResponses[response_id]?.hintsUsed ?? 0) + 1,\n };\n\n onResponseChange?.({\n responseId: response_id,\n response: newResponse,\n question: questions.find(q => q.response_id === response_id)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [response_id]: newResponse,\n };\n });\n }, [loggerRef, onResponseChange, questions, response_id, setResponses]);\n\n const handleBackButtonClick = useCallback(() => {\n const questionId = questions[questionIndex - 1]?.response_id;\n\n if (questionId) {\n if (questionsScrollable) {\n scrollToQuestion(questionId);\n } else {\n setActiveQuestionId(questionId);\n }\n }\n }, [questionIndex, questions, questionsScrollable, setActiveQuestionId]);\n\n const handleNextButtonClick = useCallback(() => {\n const questionId = questions[questionIndex + 1]?.response_id;\n\n if (questionId) {\n if (questionsScrollable) {\n scrollToQuestion(questionId);\n } else {\n setActiveQuestionId(questionId);\n }\n } else {\n setSummaryVisible(true);\n }\n }, [questionIndex, questions, questionsScrollable, setActiveQuestionId, setSummaryVisible]);\n\n const handleSkipButtonClick = useCallback(() => {\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(questions, response_id),\n ...prevResponses[response_id],\n skipped: true,\n };\n\n onResponseChange?.({\n responseId: response_id,\n response: newResponse,\n question: questions.find(q => q.response_id === response_id)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [response_id]: newResponse,\n };\n });\n setSkipped(true);\n }, [onResponseChange, questions, response_id, setResponses, setSkipped]);\n\n const handleResponseChange = useCallback(\n (answerChecked?: boolean) => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance) {\n const lquestion = questionInstance.getQuestion();\n const questionResponse = questionInstance.getResponse();\n const shouldCheckAbuse =\n lquestion.type === 'clozeformula' && questionResponse && questionResponse?.value;\n const isInputExceedingMaxLength = shouldCheckAbuse\n ? checkIsClozeFormulaResponseInvalid(questionResponse)\n : false;\n\n if (isInputExceedingMaxLength) {\n showBoundary(new Error('CLOZE_FORMULA_RESPONSE_EXCEEDS_MAX_LENGTH'));\n }\n\n questionInstance.getScore(score => {\n updateResponse(\n response_id,\n questionResponse,\n isOkayTypeQuestion(lquestion) || !score\n ? {\n max_score: 0,\n score: 0,\n unscored: !score, // score will be null for unscored questions\n }\n : { ...score, score: score.score ?? 0 },\n answerChecked,\n );\n });\n }\n },\n [learnosity, response_id, showBoundary, updateResponse],\n );\n\n const handleRetryButtonClick = useCallback(() => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance) {\n questionInstance.enable();\n questionInstance.resetValidationUI();\n handleResponseChange();\n }\n }, [handleResponseChange, learnosity, response_id]);\n\n const handleValidate = useCallback(() => {\n playAudio();\n handleResponseChange(true);\n }, [handleResponseChange, playAudio]);\n\n const handleCheckButtonClick = useCallback(() => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance) {\n questionInstance.disable();\n questionInstance.validate(\n {\n feedbackAttempts: true,\n },\n handleValidate,\n );\n }\n }, [handleValidate, learnosity, response_id]);\n\n const handleValidateButtonClick = useCallback(() => {\n if (isExitTicket) {\n setBlocker('exit-ticket-review');\n } else {\n onTeacherValidation?.(response_id);\n }\n }, [isExitTicket, onTeacherValidation, response_id, setBlocker]);\n\n const handleStartButtonClick = useCallback(() => {\n validateQuestion(response_id);\n }, [response_id, validateQuestion]);\n\n const handleReadyButtonClick = useCallback(() => {\n setResponses(prevResponses => {\n const newResponse: IWorksheetResponse = {\n ...getQuestionMetadata(questions, response_id),\n ...prevResponses[response_id],\n submittedByStudent: true,\n };\n\n onResponseChange?.({\n responseId: response_id,\n response: newResponse,\n question: questions.find(q => q.response_id === response_id)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [response_id]: newResponse,\n };\n });\n setBlocker('exit-ticket-student-submission');\n }, [onResponseChange, questions, response_id, setBlocker, setResponses]);\n\n const handleSkipSectionButtonClick = useCallback(() => {\n setBlocker('optional-items-skip');\n }, [setBlocker]);\n\n return {\n handleResponseChange,\n handleHelpButtonClick: onHelp ? handleHelpButtonClick : undefined,\n handleHintButtonClick,\n handleBackButtonClick:\n !questionsScrollable && !teacherValidationEnabled ? handleBackButtonClick : undefined,\n handleNextButtonClick,\n handleRetryButtonClick,\n handleCheckButtonClick,\n handleValidateButtonClick,\n handleStartButtonClick,\n handleReadyButtonClick,\n handleSkipSectionButtonClick,\n handleSkipButtonClick,\n };\n};\n\nexport default useHandlerCallbacks;\n"],"names":["useHandlerCallbacks","options","behavior","layout","learnosity","question","questionIndex","questions","getTimeSpentOnQuestion","setResponses","setSummaryVisible","setActiveQuestionId","setBlocker","setSkipped","onHelp","onResponseChange","onTeacherValidation","loggerRef","questionsScrollable","response_id","item_type","question_number","item_number","total_questions","isExitTicket","validation","teacherValidationEnabled","playNotifSound","useAudioPlayer","SYSTEM_VALIDATION_AUDIO_LIST","showBoundary","useErrorBoundary","playAudio","useCallback","questionInstance","isOkayTypeQuestion","sc","maxScore","currentScore","updateResponse","questionId","response","score","answerChecked","timeSpentOnQuestions","prevResponses","prevResponse","isNewAttempt","newResponse","getQuestionMetadata","q","validateQuestion","rating","handleHelpButtonClick","handleHintButtonClick","EVENTS","_a","handleBackButtonClick","scrollToQuestion","handleNextButtonClick","handleSkipButtonClick","handleResponseChange","lquestion","questionResponse","checkIsClozeFormulaResponseInvalid","handleRetryButtonClick","handleValidate","handleCheckButtonClick","handleValidateButtonClick","handleStartButtonClick","handleReadyButtonClick","handleSkipSectionButtonClick"],"mappings":"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"}
1
+ {"version":3,"file":"use-handler-callbacks.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-questions-controller/use-handler-callbacks.ts"],"sourcesContent":["import type {\n ILearnosityQuestionResponse,\n ILearnosityQuestionScore,\n IWorksheetResponse,\n} from '../worksheet-types';\nimport type { IWorksheetQuestionsControllerProps } from './worksheet-questions-controller-types';\nimport type { Dispatch, SetStateAction } from 'react';\n\nimport { useCallback } from 'react';\n\nimport useAudioPlayer from '../../../hooks/use-audio-player';\nimport EVENTS from '../../constants/events';\nimport { SYSTEM_VALIDATION_AUDIO_LIST } from '../constants';\nimport { getQuestionMetadata, isOkayTypeQuestion, scrollToQuestion } from '../worksheet-helpers';\n\ninterface IUseHandlerCallbacks {\n (\n options: Pick<\n IWorksheetQuestionsControllerProps,\n | 'learnosity'\n | 'layout'\n | 'questionIndex'\n | 'question'\n | 'questions'\n | 'setActiveQuestionId'\n | 'setResponses'\n | 'setSummaryVisible'\n | 'setBlocker'\n | 'onHelp'\n | 'onResponseChange'\n | 'onTeacherValidation'\n | 'behavior'\n | 'loggerRef'\n | 'getTimeSpentOnQuestion'\n > & {\n setSkipped: Dispatch<SetStateAction<boolean>>;\n },\n ): {\n handleResponseChange: () => void;\n handleHelpButtonClick?: () => void;\n handleHintButtonClick: () => void;\n handleBackButtonClick?: () => void;\n handleNextButtonClick: () => void;\n handleRetryButtonClick: () => void;\n handleCheckButtonClick: () => void;\n handleValidateButtonClick: () => void;\n handleStartButtonClick: () => void;\n handleReadyButtonClick: () => void;\n handleSkipSectionButtonClick: () => void;\n handleSkipButtonClick: () => void;\n };\n}\n\nconst useHandlerCallbacks: IUseHandlerCallbacks = options => {\n const {\n behavior,\n layout,\n learnosity,\n question,\n questionIndex,\n questions,\n getTimeSpentOnQuestion,\n } = options;\n const { setResponses, setSummaryVisible, setActiveQuestionId, setBlocker, setSkipped } = options;\n const { onHelp, onResponseChange, onTeacherValidation, loggerRef } = options;\n const { questionsScrollable } = layout;\n const { response_id, item_type, question_number, item_number, total_questions } = question;\n const isExitTicket = item_type === 'exit-ticket';\n const { validation, teacherValidationEnabled } = behavior;\n const playNotifSound = useAudioPlayer(SYSTEM_VALIDATION_AUDIO_LIST);\n\n const playAudio = useCallback(() => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance && validation && !isOkayTypeQuestion(questionInstance.getQuestion())) {\n questionInstance.getScore(sc => {\n const { max_score: maxScore, score: currentScore } = sc || {};\n\n if (maxScore) {\n if (maxScore === currentScore) {\n playNotifSound('CORRECT');\n } else {\n playNotifSound('INCORRECT');\n }\n }\n });\n }\n }, [learnosity, playNotifSound, response_id, validation]);\n\n const updateResponse = useCallback(\n (\n questionId: string,\n response: ILearnosityQuestionResponse,\n score: ILearnosityQuestionScore,\n answerChecked?: boolean,\n ) => {\n const timeSpentOnQuestions = getTimeSpentOnQuestion(response_id);\n\n setResponses(prevResponses => {\n const prevResponse = prevResponses[questionId];\n const isNewAttempt = !!answerChecked;\n\n const newResponse = {\n ...getQuestionMetadata(questions, questionId),\n ...prevResponse,\n response,\n score,\n responseEdited: !isNewAttempt,\n attemptsHistory: isNewAttempt\n ? [...(prevResponse?.attemptsHistory ?? []), { response, score }]\n : prevResponse?.attemptsHistory,\n skipped: !response,\n timeSpent: timeSpentOnQuestions,\n };\n\n onResponseChange?.({\n responseId: questionId,\n response: newResponse,\n question: questions.find(q => q.response_id === questionId)!,\n isNewAttempt,\n });\n\n return {\n ...prevResponses,\n [questionId]: newResponse,\n };\n });\n },\n [getTimeSpentOnQuestion, onResponseChange, questions, response_id, setResponses],\n );\n\n const validateQuestion = useCallback(\n (questionId: string, rating?: number) => {\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(questions, questionId),\n ...prevResponses[questionId],\n validatedByTeacher: true,\n rating,\n };\n\n onResponseChange?.({\n responseId: questionId,\n response: newResponse,\n question: questions.find(q => q.response_id === questionId)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [questionId]: newResponse,\n };\n });\n },\n [onResponseChange, questions, setResponses],\n );\n\n const handleHelpButtonClick = useCallback(() => {\n if (onHelp && question) {\n onHelp({\n questionId: response_id,\n questionNumber: `${item_number + 1}${\n total_questions > 1 ? String.fromCharCode('a'.charCodeAt(0) + question_number) : ''\n }`,\n });\n }\n }, [item_number, onHelp, question, question_number, response_id, total_questions]);\n\n const handleHintButtonClick = useCallback(() => {\n loggerRef.current(EVENTS.WORKSHEET_V3_HINT_SEEN);\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(questions, response_id),\n ...prevResponses[response_id],\n hintsUsed: (prevResponses[response_id]?.hintsUsed ?? 0) + 1,\n };\n\n onResponseChange?.({\n responseId: response_id,\n response: newResponse,\n question: questions.find(q => q.response_id === response_id)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [response_id]: newResponse,\n };\n });\n }, [loggerRef, onResponseChange, questions, response_id, setResponses]);\n\n const handleBackButtonClick = useCallback(() => {\n const questionId = questions[questionIndex - 1]?.response_id;\n\n if (questionId) {\n if (questionsScrollable) {\n scrollToQuestion(questionId);\n } else {\n setActiveQuestionId(questionId);\n }\n }\n }, [questionIndex, questions, questionsScrollable, setActiveQuestionId]);\n\n const handleNextButtonClick = useCallback(() => {\n const questionId = questions[questionIndex + 1]?.response_id;\n\n if (questionId) {\n if (questionsScrollable) {\n scrollToQuestion(questionId);\n } else {\n setActiveQuestionId(questionId);\n }\n } else {\n setSummaryVisible(true);\n }\n }, [questionIndex, questions, questionsScrollable, setActiveQuestionId, setSummaryVisible]);\n\n const handleSkipButtonClick = useCallback(() => {\n setResponses(prevResponses => {\n const newResponse = {\n ...getQuestionMetadata(questions, response_id),\n ...prevResponses[response_id],\n skipped: true,\n };\n\n onResponseChange?.({\n responseId: response_id,\n response: newResponse,\n question: questions.find(q => q.response_id === response_id)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [response_id]: newResponse,\n };\n });\n setSkipped(true);\n }, [onResponseChange, questions, response_id, setResponses, setSkipped]);\n\n const handleResponseChange = useCallback(\n (answerChecked?: boolean) => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance) {\n questionInstance.getScore(score => {\n updateResponse(\n response_id,\n questionInstance.getResponse(),\n isOkayTypeQuestion(questionInstance.getQuestion()) || !score\n ? {\n max_score: 0,\n score: 0,\n unscored: !score, // score will be null for unscored questions\n }\n : { ...score, score: score.score ?? 0 },\n answerChecked,\n );\n });\n }\n },\n [learnosity, response_id, updateResponse],\n );\n\n const handleRetryButtonClick = useCallback(() => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance) {\n questionInstance.enable();\n questionInstance.resetValidationUI();\n handleResponseChange();\n }\n }, [handleResponseChange, learnosity, response_id]);\n\n const handleValidate = useCallback(() => {\n playAudio();\n handleResponseChange(true);\n }, [handleResponseChange, playAudio]);\n\n const handleCheckButtonClick = useCallback(() => {\n const questionInstance = learnosity.question(response_id);\n\n if (questionInstance) {\n questionInstance.disable();\n questionInstance.validate(\n {\n feedbackAttempts: true,\n },\n handleValidate,\n );\n }\n }, [handleValidate, learnosity, response_id]);\n\n const handleValidateButtonClick = useCallback(() => {\n if (isExitTicket) {\n setBlocker('exit-ticket-review');\n } else {\n onTeacherValidation?.(response_id);\n }\n }, [isExitTicket, onTeacherValidation, response_id, setBlocker]);\n\n const handleStartButtonClick = useCallback(() => {\n validateQuestion(response_id);\n }, [response_id, validateQuestion]);\n\n const handleReadyButtonClick = useCallback(() => {\n setResponses(prevResponses => {\n const newResponse: IWorksheetResponse = {\n ...getQuestionMetadata(questions, response_id),\n ...prevResponses[response_id],\n submittedByStudent: true,\n };\n\n onResponseChange?.({\n responseId: response_id,\n response: newResponse,\n question: questions.find(q => q.response_id === response_id)!,\n isNewAttempt: false,\n });\n\n return {\n ...prevResponses,\n [response_id]: newResponse,\n };\n });\n setBlocker('exit-ticket-student-submission');\n }, [onResponseChange, questions, response_id, setBlocker, setResponses]);\n\n const handleSkipSectionButtonClick = useCallback(() => {\n setBlocker('optional-items-skip');\n }, [setBlocker]);\n\n return {\n handleResponseChange,\n handleHelpButtonClick: onHelp ? handleHelpButtonClick : undefined,\n handleHintButtonClick,\n handleBackButtonClick:\n !questionsScrollable && !teacherValidationEnabled ? handleBackButtonClick : undefined,\n handleNextButtonClick,\n handleRetryButtonClick,\n handleCheckButtonClick,\n handleValidateButtonClick,\n handleStartButtonClick,\n handleReadyButtonClick,\n handleSkipSectionButtonClick,\n handleSkipButtonClick,\n };\n};\n\nexport default useHandlerCallbacks;\n"],"names":["useHandlerCallbacks","options","behavior","layout","learnosity","question","questionIndex","questions","getTimeSpentOnQuestion","setResponses","setSummaryVisible","setActiveQuestionId","setBlocker","setSkipped","onHelp","onResponseChange","onTeacherValidation","loggerRef","questionsScrollable","response_id","item_type","question_number","item_number","total_questions","isExitTicket","validation","teacherValidationEnabled","playNotifSound","useAudioPlayer","SYSTEM_VALIDATION_AUDIO_LIST","playAudio","useCallback","questionInstance","isOkayTypeQuestion","sc","maxScore","currentScore","updateResponse","questionId","response","score","answerChecked","timeSpentOnQuestions","prevResponses","prevResponse","isNewAttempt","newResponse","getQuestionMetadata","q","validateQuestion","rating","handleHelpButtonClick","handleHintButtonClick","EVENTS","_a","handleBackButtonClick","scrollToQuestion","handleNextButtonClick","handleSkipButtonClick","handleResponseChange","handleRetryButtonClick","handleValidate","handleCheckButtonClick","handleValidateButtonClick","handleStartButtonClick","handleReadyButtonClick","handleSkipSectionButtonClick"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -295,14 +295,10 @@ export declare const CueCanvas: React.FC<ICueCanvas>;
295
295
 
296
296
  export declare const CueCanvasController: React_2.FC<IToolbarProps>;
297
297
 
298
- export declare const CueCanvasHomeworkController: NamedExoticComponent<IHomeWorkControllerProps>;
299
-
300
298
  export declare const CueCanvasProvider: FC<PropsWithChildren<{
301
299
  userType: TUserTypes;
302
300
  }>>;
303
301
 
304
- export declare const CueCanvasSideBar: NamedExoticComponent<ISidebar>;
305
-
306
302
  export declare const CuemathLogo: React_2.FC<React_2.SVGProps<SVGSVGElement>>;
307
303
 
308
304
  export declare const CueRocket: React.FC<React.SVGProps<SVGSVGElement>>;
@@ -803,11 +799,6 @@ declare interface ICalloutProps {
803
799
  marginBottomX: number;
804
800
  }
805
801
 
806
- declare interface ICanvasUpdateConfig {
807
- dimesion?: IViewport;
808
- gridName?: TCueCanvasGridName;
809
- }
810
-
811
802
  declare interface ICascadeSelectValue {
812
803
  variant: string;
813
804
  detail: string;
@@ -1213,8 +1204,6 @@ declare interface ICueCanvas {
1213
1204
  onUpdateHeight?: TUpdateHeight;
1214
1205
  onPublish?: TPublish;
1215
1206
  onSubscribe?: TSubscribe;
1216
- canvasConfig?: ICanvasUpdateConfig | null;
1217
- updateCanvasConfig?: TUpdateCanvasConfig;
1218
1207
  }
1219
1208
 
1220
1209
  declare interface ICueCanvasCallbackProps {
@@ -1323,8 +1312,6 @@ declare interface IErrorProps {
1323
1312
  onTryAgain?: () => void;
1324
1313
  height?: string | number;
1325
1314
  theme?: 'light' | 'dark';
1326
- title?: string;
1327
- description?: string;
1328
1315
  }
1329
1316
 
1330
1317
  declare interface IExpandableHeaderProps {
@@ -1464,6 +1451,7 @@ declare interface IGoalCurriculumMap {
1464
1451
  program_code: string;
1465
1452
  program_name: string;
1466
1453
  program_id: string;
1454
+ is_live: boolean;
1467
1455
  }
1468
1456
 
1469
1457
  declare interface IGooglePlaceOption extends google.maps.places.AutocompletePrediction, ISelectOption<string> {
@@ -1491,30 +1479,6 @@ export declare interface IHomepageStartJourneyProps {
1491
1479
  userType: TUserTypes;
1492
1480
  }
1493
1481
 
1494
- declare interface IHomeWorkControllerProps {
1495
- width: number;
1496
- hwRequests?: IHomeWorkHelpRequestModel[];
1497
- onMarkAsResolved?: (homeworkId: string, onSuccess: () => void) => void;
1498
- onSendImageToChat?: (homeworkId: string, snapshot: Blob[], onSuccess: () => void) => void;
1499
- }
1500
-
1501
- export declare interface IHomeWorkHelpRequestModel {
1502
- channel_id: string;
1503
- created_on_ts: number;
1504
- homework_id: string;
1505
- id: string;
1506
- message_timestamp: string;
1507
- problem_description: string;
1508
- problem_image_urls: string[];
1509
- state: string;
1510
- student_id: string;
1511
- teacher_id: string;
1512
- }
1513
-
1514
- declare interface IHomeWorkHelpRequestModelWithStudentName extends IHomeWorkHelpRequestModel {
1515
- student_name: string;
1516
- }
1517
-
1518
1482
  declare interface IIconButtonProps extends Omit<IButtonProps, 'label' | 'shape' | 'widthX' | 'width' | 'iconPosition' | 'alignSelf' | 'analyticsLabel' | 'renderAs'>, Required<Pick<IClickableAnalyticsProps, 'analyticsLabel'>> {
1519
1483
  Icon: React.FC<React.SVGProps<SVGSVGElement>>;
1520
1484
  customBgColor?: TColorNames;
@@ -3008,11 +2972,6 @@ declare interface ISheetsListProps extends ISheetItemCallbackProps {
3008
2972
  section?: TSheetsSection;
3009
2973
  }
3010
2974
 
3011
- declare interface ISidebar {
3012
- grade?: string;
3013
- hwRequests?: IHomeWorkHelpRequestModelWithStudentName[];
3014
- }
3015
-
3016
2975
  declare interface ISignupMethodsProps {
3017
2976
  onEmailSignup: () => void;
3018
2977
  onPhoneSignup: () => void;
@@ -3381,8 +3340,6 @@ declare interface ITile {
3381
3340
  toPort?: string;
3382
3341
  toTileId: string;
3383
3342
  }[];
3384
- html?: string;
3385
- width?: number | string;
3386
3343
  }
3387
3344
 
3388
3345
  declare interface ITimeLeftTimelineProps {
@@ -5613,8 +5570,6 @@ export declare type TTrialSessionMessage = {
5613
5570
  };
5614
5571
  };
5615
5572
 
5616
- declare type TUpdateCanvasConfig = (data: ICanvasUpdateConfig) => void;
5617
-
5618
5573
  declare type TUpdateHeight = (height: number) => void;
5619
5574
 
5620
5575
  declare type TUserAccount = {
@@ -5666,14 +5621,12 @@ export declare const UpIcon: React.FC<React.SVGProps<SVGSVGElement>>;
5666
5621
 
5667
5622
  export declare const useAutoPlayPermission: () => IAutoPlayPermissionContextType;
5668
5623
 
5669
- export declare const useCanvasSyncBroker: (channelId: string, logEvent: (type: string, payload?: Record<string, unknown>) => void, initialCanvasData?: Array<IChannelMessage>, type?: TRenderAs_2) => {
5670
- publishStrokes: ((message: IPublishData) => boolean) | undefined;
5624
+ export declare const useCanvasSyncBroker: (channelId: string, logEvent: (type: string, payload?: Record<string, unknown>) => void, initialCanvasData?: Array<IChannelMessage>) => {
5625
+ publishStrokes: ((message: unknown) => boolean) | undefined;
5671
5626
  channelStatus: ChannelStatus | undefined;
5672
5627
  closeChannel: () => void;
5673
5628
  initialStrokesData: Record<string, IActionData[]>;
5674
5629
  registerCallback: (qrId: string, cb: (data: IActionData) => void) => void;
5675
- setChannelMetadata: ((metadata: ICanvasUpdateConfig, merge?: boolean) => void) | undefined;
5676
- channelMetadata: ICanvasUpdateConfig | null | undefined;
5677
5630
  };
5678
5631
 
5679
5632
  export declare const useChapterPageJourney: () => {