analytica-frontend-lib 1.2.82 → 1.2.83
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/hooks/useRecommendedLessonsPage/index.d.ts +218 -0
- package/dist/hooks/useRecommendedLessonsPage/index.d.ts.map +1 -0
- package/dist/hooks/useRecommendedLessonsPage/index.js +247 -0
- package/dist/hooks/useRecommendedLessonsPage/index.js.map +1 -0
- package/dist/hooks/useRecommendedLessonsPage/index.mjs +221 -0
- package/dist/hooks/useRecommendedLessonsPage/index.mjs.map +1 -0
- package/dist/hooks/useRecommendedLessonsPage.d.ts +218 -0
- package/dist/hooks/useRecommendedLessonsPage.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +305 -84
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +294 -75
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -233,6 +233,7 @@ __export(src_exports, {
|
|
|
233
233
|
createQuestionsListHook: () => createQuestionsListHook,
|
|
234
234
|
createRecommendedLessonDetailsHook: () => createRecommendedLessonDetailsHook,
|
|
235
235
|
createRecommendedLessonsHistoryHook: () => createRecommendedLessonsHistoryHook,
|
|
236
|
+
createRecommendedLessonsPageHook: () => createRecommendedLessonsPageHook,
|
|
236
237
|
createUseActivitiesHistory: () => createUseActivitiesHistory,
|
|
237
238
|
createUseActivityFiltersData: () => createUseActivityFiltersData,
|
|
238
239
|
createUseActivityModels: () => createUseActivityModels,
|
|
@@ -244,6 +245,7 @@ __export(src_exports, {
|
|
|
244
245
|
createUseQuestionsList: () => createUseQuestionsList,
|
|
245
246
|
createUseRecommendedLessonDetails: () => createUseRecommendedLessonDetails,
|
|
246
247
|
createUseRecommendedLessonsHistory: () => createUseRecommendedLessonsHistory,
|
|
248
|
+
createUseRecommendedLessonsPage: () => createUseRecommendedLessonsPage,
|
|
247
249
|
createZustandAuthAdapter: () => createZustandAuthAdapter,
|
|
248
250
|
deriveStudentStatus: () => deriveStudentStatus,
|
|
249
251
|
determineGoalStatus: () => determineGoalStatus,
|
|
@@ -27122,8 +27124,225 @@ var RecommendedLessonDetails = ({
|
|
|
27122
27124
|
};
|
|
27123
27125
|
var RecommendedLessonDetails_default = RecommendedLessonDetails;
|
|
27124
27126
|
|
|
27125
|
-
// src/hooks/
|
|
27127
|
+
// src/hooks/useRecommendedLessonsPage.ts
|
|
27126
27128
|
var import_react87 = require("react");
|
|
27129
|
+
var buildQueryParams2 = (filters) => {
|
|
27130
|
+
if (!filters) return {};
|
|
27131
|
+
const params = {};
|
|
27132
|
+
for (const key in filters) {
|
|
27133
|
+
const value = filters[key];
|
|
27134
|
+
if (value !== void 0 && value !== null) {
|
|
27135
|
+
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
27136
|
+
params[key] = value;
|
|
27137
|
+
}
|
|
27138
|
+
}
|
|
27139
|
+
}
|
|
27140
|
+
return params;
|
|
27141
|
+
};
|
|
27142
|
+
var getSchoolOptions2 = (userData) => {
|
|
27143
|
+
if (!userData?.userInstitutions) return [];
|
|
27144
|
+
const schoolMap = /* @__PURE__ */ new Map();
|
|
27145
|
+
userData.userInstitutions.forEach((inst) => {
|
|
27146
|
+
if (inst.school?.id && inst.school?.name) {
|
|
27147
|
+
schoolMap.set(inst.school.id, inst.school.name);
|
|
27148
|
+
}
|
|
27149
|
+
});
|
|
27150
|
+
return Array.from(schoolMap.entries()).map(([id, name]) => ({ id, name }));
|
|
27151
|
+
};
|
|
27152
|
+
var getClassOptions2 = (userData) => {
|
|
27153
|
+
if (!userData?.userInstitutions) return [];
|
|
27154
|
+
const classMap = /* @__PURE__ */ new Map();
|
|
27155
|
+
userData.userInstitutions.forEach((inst) => {
|
|
27156
|
+
if (inst.class?.id && inst.class?.name) {
|
|
27157
|
+
classMap.set(inst.class.id, inst.class.name);
|
|
27158
|
+
}
|
|
27159
|
+
});
|
|
27160
|
+
return Array.from(classMap.entries()).map(([id, name]) => ({ id, name }));
|
|
27161
|
+
};
|
|
27162
|
+
var getSubjectOptions3 = (userData) => {
|
|
27163
|
+
if (!userData?.subTeacherTopicClasses) return [];
|
|
27164
|
+
const subjectMap = /* @__PURE__ */ new Map();
|
|
27165
|
+
userData.subTeacherTopicClasses.forEach((stc) => {
|
|
27166
|
+
if (stc.subject?.id && stc.subject?.name) {
|
|
27167
|
+
subjectMap.set(stc.subject.id, stc.subject.name);
|
|
27168
|
+
}
|
|
27169
|
+
});
|
|
27170
|
+
return Array.from(subjectMap.entries()).map(([id, name]) => ({ id, name }));
|
|
27171
|
+
};
|
|
27172
|
+
var createUseRecommendedLessonsPage = (config) => {
|
|
27173
|
+
const {
|
|
27174
|
+
api,
|
|
27175
|
+
navigate,
|
|
27176
|
+
userData,
|
|
27177
|
+
paths,
|
|
27178
|
+
endpoints,
|
|
27179
|
+
texts,
|
|
27180
|
+
emptyStateImage,
|
|
27181
|
+
noSearchImage,
|
|
27182
|
+
mapSubjectNameToEnum: mapSubjectNameToEnum2
|
|
27183
|
+
} = config;
|
|
27184
|
+
return () => {
|
|
27185
|
+
const goalsMapRef = (0, import_react87.useRef)(/* @__PURE__ */ new Map());
|
|
27186
|
+
const [sendModalOpen, setSendModalOpen] = (0, import_react87.useState)(false);
|
|
27187
|
+
const [selectedModel, setSelectedModel] = (0, import_react87.useState)(null);
|
|
27188
|
+
const [sendModalLoading, setSendModalLoading] = (0, import_react87.useState)(false);
|
|
27189
|
+
const [sendModalCategories, setSendModalCategories] = (0, import_react87.useState)([]);
|
|
27190
|
+
const userFilterData = (0, import_react87.useMemo)(
|
|
27191
|
+
() => ({
|
|
27192
|
+
schools: getSchoolOptions2(userData),
|
|
27193
|
+
classes: getClassOptions2(userData),
|
|
27194
|
+
subjects: getSubjectOptions3(userData)
|
|
27195
|
+
}),
|
|
27196
|
+
[userData]
|
|
27197
|
+
);
|
|
27198
|
+
const subjectsMap = (0, import_react87.useMemo)(() => {
|
|
27199
|
+
const map = /* @__PURE__ */ new Map();
|
|
27200
|
+
const subjects = getSubjectOptions3(userData);
|
|
27201
|
+
subjects.forEach((s) => map.set(s.id, s.name));
|
|
27202
|
+
return map;
|
|
27203
|
+
}, [userData]);
|
|
27204
|
+
const fetchGoalsHistory = (0, import_react87.useCallback)(
|
|
27205
|
+
async (filters) => {
|
|
27206
|
+
const params = buildQueryParams2(filters);
|
|
27207
|
+
const response = await api.get(
|
|
27208
|
+
endpoints.goalsHistory,
|
|
27209
|
+
{ params }
|
|
27210
|
+
);
|
|
27211
|
+
const goals = response.data.data.goals;
|
|
27212
|
+
goals.forEach((goal) => {
|
|
27213
|
+
goalsMapRef.current.set(goal.goal.id, goal);
|
|
27214
|
+
});
|
|
27215
|
+
return response.data;
|
|
27216
|
+
},
|
|
27217
|
+
[api, endpoints.goalsHistory]
|
|
27218
|
+
);
|
|
27219
|
+
const fetchGoalModels = (0, import_react87.useCallback)(
|
|
27220
|
+
async (filters) => {
|
|
27221
|
+
const params = buildQueryParams2({
|
|
27222
|
+
...filters,
|
|
27223
|
+
type: "MODELO" /* MODELO */
|
|
27224
|
+
});
|
|
27225
|
+
const response = await api.get(
|
|
27226
|
+
endpoints.goalDrafts,
|
|
27227
|
+
{ params }
|
|
27228
|
+
);
|
|
27229
|
+
return response.data;
|
|
27230
|
+
},
|
|
27231
|
+
[api, endpoints.goalDrafts]
|
|
27232
|
+
);
|
|
27233
|
+
const deleteGoalModel = (0, import_react87.useCallback)(
|
|
27234
|
+
async (id) => {
|
|
27235
|
+
await api.delete(`${endpoints.goalDrafts}/${id}`);
|
|
27236
|
+
},
|
|
27237
|
+
[api, endpoints.goalDrafts]
|
|
27238
|
+
);
|
|
27239
|
+
const handleCreateLesson = (0, import_react87.useCallback)(() => {
|
|
27240
|
+
navigate(paths.createLesson);
|
|
27241
|
+
}, []);
|
|
27242
|
+
const handleCreateModel = (0, import_react87.useCallback)(() => {
|
|
27243
|
+
navigate(paths.createModel);
|
|
27244
|
+
}, []);
|
|
27245
|
+
const handleRowClick = (0, import_react87.useCallback)((row) => {
|
|
27246
|
+
const originalData = goalsMapRef.current.get(row.id);
|
|
27247
|
+
navigate(`${paths.lessonDetails}/${row.id}`, {
|
|
27248
|
+
state: { goalData: originalData }
|
|
27249
|
+
});
|
|
27250
|
+
}, []);
|
|
27251
|
+
const handleEditGoal = (0, import_react87.useCallback)((id) => {
|
|
27252
|
+
navigate(`${paths.editLesson}/${id}/editar`);
|
|
27253
|
+
}, []);
|
|
27254
|
+
const handleEditModel = (0, import_react87.useCallback)((model) => {
|
|
27255
|
+
navigate(`${paths.editModel}${model.id}`);
|
|
27256
|
+
}, []);
|
|
27257
|
+
const handleSendLesson = (0, import_react87.useCallback)(
|
|
27258
|
+
(model) => {
|
|
27259
|
+
setSelectedModel(model);
|
|
27260
|
+
const classes = getClassOptions2(userData);
|
|
27261
|
+
const categories = [];
|
|
27262
|
+
if (classes.length > 0) {
|
|
27263
|
+
categories.push({
|
|
27264
|
+
key: "students",
|
|
27265
|
+
label: "Turmas",
|
|
27266
|
+
selectedIds: [],
|
|
27267
|
+
itens: classes.map((cls) => ({
|
|
27268
|
+
id: cls.id,
|
|
27269
|
+
name: cls.name,
|
|
27270
|
+
studentId: cls.id,
|
|
27271
|
+
userInstitutionId: cls.id
|
|
27272
|
+
}))
|
|
27273
|
+
});
|
|
27274
|
+
}
|
|
27275
|
+
setSendModalCategories(categories);
|
|
27276
|
+
setSendModalOpen(true);
|
|
27277
|
+
},
|
|
27278
|
+
[userData]
|
|
27279
|
+
);
|
|
27280
|
+
const handleSendLessonSubmit = (0, import_react87.useCallback)(
|
|
27281
|
+
async (formData) => {
|
|
27282
|
+
if (!selectedModel) return;
|
|
27283
|
+
setSendModalLoading(true);
|
|
27284
|
+
try {
|
|
27285
|
+
await api.post(endpoints.submitGoal, {
|
|
27286
|
+
draftId: selectedModel.id,
|
|
27287
|
+
students: formData.students,
|
|
27288
|
+
startDate: `${formData.startDate}T${formData.startTime}:00`,
|
|
27289
|
+
finalDate: `${formData.finalDate}T${formData.finalTime}:00`
|
|
27290
|
+
});
|
|
27291
|
+
setSendModalOpen(false);
|
|
27292
|
+
setSelectedModel(null);
|
|
27293
|
+
} finally {
|
|
27294
|
+
setSendModalLoading(false);
|
|
27295
|
+
}
|
|
27296
|
+
},
|
|
27297
|
+
[api, endpoints.submitGoal, selectedModel]
|
|
27298
|
+
);
|
|
27299
|
+
const handleSendModalClose = (0, import_react87.useCallback)(() => {
|
|
27300
|
+
setSendModalOpen(false);
|
|
27301
|
+
setSelectedModel(null);
|
|
27302
|
+
}, []);
|
|
27303
|
+
const handleCategoriesChange = (0, import_react87.useCallback)(
|
|
27304
|
+
(categories) => {
|
|
27305
|
+
setSendModalCategories(categories);
|
|
27306
|
+
},
|
|
27307
|
+
[]
|
|
27308
|
+
);
|
|
27309
|
+
return {
|
|
27310
|
+
historyProps: {
|
|
27311
|
+
fetchGoalsHistory,
|
|
27312
|
+
fetchGoalModels,
|
|
27313
|
+
deleteGoalModel,
|
|
27314
|
+
onCreateLesson: handleCreateLesson,
|
|
27315
|
+
onCreateModel: handleCreateModel,
|
|
27316
|
+
onRowClick: handleRowClick,
|
|
27317
|
+
onEditGoal: handleEditGoal,
|
|
27318
|
+
onEditModel: handleEditModel,
|
|
27319
|
+
onSendLesson: handleSendLesson,
|
|
27320
|
+
emptyStateImage,
|
|
27321
|
+
noSearchImage,
|
|
27322
|
+
mapSubjectNameToEnum: mapSubjectNameToEnum2,
|
|
27323
|
+
userFilterData,
|
|
27324
|
+
subjectsMap,
|
|
27325
|
+
title: texts.title,
|
|
27326
|
+
createButtonText: texts.createButtonText,
|
|
27327
|
+
searchPlaceholder: texts.searchPlaceholder
|
|
27328
|
+
},
|
|
27329
|
+
modalProps: {
|
|
27330
|
+
isOpen: sendModalOpen,
|
|
27331
|
+
onClose: handleSendModalClose,
|
|
27332
|
+
onSubmit: handleSendLessonSubmit,
|
|
27333
|
+
categories: sendModalCategories,
|
|
27334
|
+
onCategoriesChange: handleCategoriesChange,
|
|
27335
|
+
isLoading: sendModalLoading,
|
|
27336
|
+
modalTitle: selectedModel?.title
|
|
27337
|
+
},
|
|
27338
|
+
navigate
|
|
27339
|
+
};
|
|
27340
|
+
};
|
|
27341
|
+
};
|
|
27342
|
+
var createRecommendedLessonsPageHook = createUseRecommendedLessonsPage;
|
|
27343
|
+
|
|
27344
|
+
// src/hooks/useRecommendedLessonDetails.ts
|
|
27345
|
+
var import_react88 = require("react");
|
|
27127
27346
|
var import_zod8 = require("zod");
|
|
27128
27347
|
var goalLessonSubjectSchema = import_zod8.z.object({
|
|
27129
27348
|
id: import_zod8.z.string(),
|
|
@@ -27226,12 +27445,12 @@ var handleLessonDetailsFetchError = (error) => {
|
|
|
27226
27445
|
};
|
|
27227
27446
|
var createUseRecommendedLessonDetails = (apiClient) => {
|
|
27228
27447
|
return (lessonId) => {
|
|
27229
|
-
const [state, setState] = (0,
|
|
27448
|
+
const [state, setState] = (0, import_react88.useState)({
|
|
27230
27449
|
data: null,
|
|
27231
27450
|
loading: true,
|
|
27232
27451
|
error: null
|
|
27233
27452
|
});
|
|
27234
|
-
const fetchLessonDetails = (0,
|
|
27453
|
+
const fetchLessonDetails = (0, import_react88.useCallback)(async () => {
|
|
27235
27454
|
if (!lessonId) {
|
|
27236
27455
|
setState({
|
|
27237
27456
|
data: null,
|
|
@@ -27277,7 +27496,7 @@ var createUseRecommendedLessonDetails = (apiClient) => {
|
|
|
27277
27496
|
});
|
|
27278
27497
|
}
|
|
27279
27498
|
}, [lessonId]);
|
|
27280
|
-
(0,
|
|
27499
|
+
(0, import_react88.useEffect)(() => {
|
|
27281
27500
|
fetchLessonDetails();
|
|
27282
27501
|
}, [fetchLessonDetails]);
|
|
27283
27502
|
return {
|
|
@@ -27289,10 +27508,10 @@ var createUseRecommendedLessonDetails = (apiClient) => {
|
|
|
27289
27508
|
var createRecommendedLessonDetailsHook = createUseRecommendedLessonDetails;
|
|
27290
27509
|
|
|
27291
27510
|
// src/components/ActivitiesHistory/ActivitiesHistory.tsx
|
|
27292
|
-
var
|
|
27511
|
+
var import_react92 = require("react");
|
|
27293
27512
|
|
|
27294
27513
|
// src/components/ActivitiesHistory/tabs/HistoryTab.tsx
|
|
27295
|
-
var
|
|
27514
|
+
var import_react90 = require("react");
|
|
27296
27515
|
var import_phosphor_react52 = require("phosphor-react");
|
|
27297
27516
|
|
|
27298
27517
|
// src/components/ActivitiesHistory/config/historyTableColumns.tsx
|
|
@@ -27341,14 +27560,14 @@ var buildModelsFiltersFromParams = (params) => {
|
|
|
27341
27560
|
};
|
|
27342
27561
|
|
|
27343
27562
|
// src/components/ActivitiesHistory/utils/filterOptions.ts
|
|
27344
|
-
var
|
|
27563
|
+
var getSchoolOptions3 = (data) => {
|
|
27345
27564
|
if (!data?.schools) return [];
|
|
27346
27565
|
return data.schools.map((school) => ({
|
|
27347
27566
|
id: school.id,
|
|
27348
27567
|
name: school.name
|
|
27349
27568
|
}));
|
|
27350
27569
|
};
|
|
27351
|
-
var
|
|
27570
|
+
var getSubjectOptions4 = (data) => {
|
|
27352
27571
|
if (!data?.subjects) return [];
|
|
27353
27572
|
return data.subjects.map((subject) => ({
|
|
27354
27573
|
id: subject.id,
|
|
@@ -27484,7 +27703,7 @@ var createHistoryFiltersConfig = (userData) => [
|
|
|
27484
27703
|
key: "school",
|
|
27485
27704
|
label: "Escola",
|
|
27486
27705
|
selectedIds: [],
|
|
27487
|
-
itens:
|
|
27706
|
+
itens: getSchoolOptions3(userData)
|
|
27488
27707
|
}
|
|
27489
27708
|
]
|
|
27490
27709
|
},
|
|
@@ -27496,14 +27715,14 @@ var createHistoryFiltersConfig = (userData) => [
|
|
|
27496
27715
|
key: "subject",
|
|
27497
27716
|
label: "Mat\xE9ria",
|
|
27498
27717
|
selectedIds: [],
|
|
27499
|
-
itens:
|
|
27718
|
+
itens: getSubjectOptions4(userData)
|
|
27500
27719
|
}
|
|
27501
27720
|
]
|
|
27502
27721
|
}
|
|
27503
27722
|
];
|
|
27504
27723
|
|
|
27505
27724
|
// src/hooks/useActivitiesHistory.ts
|
|
27506
|
-
var
|
|
27725
|
+
var import_react89 = require("react");
|
|
27507
27726
|
var import_zod9 = require("zod");
|
|
27508
27727
|
var import_dayjs5 = __toESM(require("dayjs"));
|
|
27509
27728
|
var activityHistoryResponseSchema = import_zod9.z.object({
|
|
@@ -27562,13 +27781,13 @@ var handleActivityFetchError = createFetchErrorHandler(
|
|
|
27562
27781
|
);
|
|
27563
27782
|
var createUseActivitiesHistory = (fetchActivitiesHistory) => {
|
|
27564
27783
|
return () => {
|
|
27565
|
-
const [state, setState] = (0,
|
|
27784
|
+
const [state, setState] = (0, import_react89.useState)({
|
|
27566
27785
|
activities: [],
|
|
27567
27786
|
loading: false,
|
|
27568
27787
|
error: null,
|
|
27569
27788
|
pagination: DEFAULT_ACTIVITIES_PAGINATION
|
|
27570
27789
|
});
|
|
27571
|
-
const fetchActivities = (0,
|
|
27790
|
+
const fetchActivities = (0, import_react89.useCallback)(
|
|
27572
27791
|
async (filters) => {
|
|
27573
27792
|
setState((prev) => ({ ...prev, loading: true, error: null }));
|
|
27574
27793
|
try {
|
|
@@ -27613,9 +27832,9 @@ var HistoryTab = ({
|
|
|
27613
27832
|
mapSubjectNameToEnum: mapSubjectNameToEnum2,
|
|
27614
27833
|
userFilterData
|
|
27615
27834
|
}) => {
|
|
27616
|
-
const fetchActivitiesHistoryRef = (0,
|
|
27835
|
+
const fetchActivitiesHistoryRef = (0, import_react90.useRef)(fetchActivitiesHistory);
|
|
27617
27836
|
fetchActivitiesHistoryRef.current = fetchActivitiesHistory;
|
|
27618
|
-
const useActivitiesHistory = (0,
|
|
27837
|
+
const useActivitiesHistory = (0, import_react90.useMemo)(
|
|
27619
27838
|
() => createUseActivitiesHistory(
|
|
27620
27839
|
(filters) => fetchActivitiesHistoryRef.current(filters)
|
|
27621
27840
|
),
|
|
@@ -27628,15 +27847,15 @@ var HistoryTab = ({
|
|
|
27628
27847
|
pagination,
|
|
27629
27848
|
fetchActivities
|
|
27630
27849
|
} = useActivitiesHistory();
|
|
27631
|
-
const historyFilterConfigs = (0,
|
|
27850
|
+
const historyFilterConfigs = (0, import_react90.useMemo)(
|
|
27632
27851
|
() => createHistoryFiltersConfig(userFilterData),
|
|
27633
27852
|
[userFilterData]
|
|
27634
27853
|
);
|
|
27635
|
-
const historyTableColumns = (0,
|
|
27854
|
+
const historyTableColumns = (0, import_react90.useMemo)(
|
|
27636
27855
|
() => createHistoryTableColumns(mapSubjectNameToEnum2),
|
|
27637
27856
|
[mapSubjectNameToEnum2]
|
|
27638
27857
|
);
|
|
27639
|
-
const handleParamsChange = (0,
|
|
27858
|
+
const handleParamsChange = (0, import_react90.useCallback)(
|
|
27640
27859
|
(params) => {
|
|
27641
27860
|
const filters = buildHistoryFiltersFromParams(params);
|
|
27642
27861
|
fetchActivities(filters);
|
|
@@ -27728,14 +27947,14 @@ var createModelsFiltersConfig = (userData) => [
|
|
|
27728
27947
|
key: "subject",
|
|
27729
27948
|
label: "Mat\xE9ria",
|
|
27730
27949
|
selectedIds: [],
|
|
27731
|
-
itens:
|
|
27950
|
+
itens: getSubjectOptions4(userData)
|
|
27732
27951
|
}
|
|
27733
27952
|
]
|
|
27734
27953
|
}
|
|
27735
27954
|
];
|
|
27736
27955
|
|
|
27737
27956
|
// src/hooks/useActivityModels.ts
|
|
27738
|
-
var
|
|
27957
|
+
var import_react91 = require("react");
|
|
27739
27958
|
var import_zod10 = require("zod");
|
|
27740
27959
|
var import_dayjs6 = __toESM(require("dayjs"));
|
|
27741
27960
|
var activityDraftFiltersSchema = import_zod10.z.object({
|
|
@@ -27785,13 +28004,13 @@ var handleModelFetchError = createFetchErrorHandler(
|
|
|
27785
28004
|
);
|
|
27786
28005
|
var createUseActivityModels = (fetchActivityModels, deleteActivityModel) => {
|
|
27787
28006
|
return () => {
|
|
27788
|
-
const [state, setState] = (0,
|
|
28007
|
+
const [state, setState] = (0, import_react91.useState)({
|
|
27789
28008
|
models: [],
|
|
27790
28009
|
loading: false,
|
|
27791
28010
|
error: null,
|
|
27792
28011
|
pagination: DEFAULT_MODELS_PAGINATION
|
|
27793
28012
|
});
|
|
27794
|
-
const fetchModels = (0,
|
|
28013
|
+
const fetchModels = (0, import_react91.useCallback)(
|
|
27795
28014
|
async (filters, subjectsMap) => {
|
|
27796
28015
|
setState((prev) => ({ ...prev, loading: true, error: null }));
|
|
27797
28016
|
try {
|
|
@@ -27826,7 +28045,7 @@ var createUseActivityModels = (fetchActivityModels, deleteActivityModel) => {
|
|
|
27826
28045
|
},
|
|
27827
28046
|
[fetchActivityModels]
|
|
27828
28047
|
);
|
|
27829
|
-
const deleteModel = (0,
|
|
28048
|
+
const deleteModel = (0, import_react91.useCallback)(
|
|
27830
28049
|
async (id) => {
|
|
27831
28050
|
try {
|
|
27832
28051
|
await deleteActivityModel(id);
|
|
@@ -27929,7 +28148,7 @@ var ActivitiesHistory = ({
|
|
|
27929
28148
|
userFilterData,
|
|
27930
28149
|
subjectsMap
|
|
27931
28150
|
}) => {
|
|
27932
|
-
const [activeTab, setActiveTab] = (0,
|
|
28151
|
+
const [activeTab, setActiveTab] = (0, import_react92.useState)("history" /* HISTORY */);
|
|
27933
28152
|
return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(
|
|
27934
28153
|
"div",
|
|
27935
28154
|
{
|
|
@@ -28168,7 +28387,7 @@ var buildUserFilterData = (userData) => ({
|
|
|
28168
28387
|
});
|
|
28169
28388
|
|
|
28170
28389
|
// src/hooks/useChat.ts
|
|
28171
|
-
var
|
|
28390
|
+
var import_react93 = require("react");
|
|
28172
28391
|
var WS_STATES = {
|
|
28173
28392
|
CONNECTING: 0,
|
|
28174
28393
|
OPEN: 1,
|
|
@@ -28187,25 +28406,25 @@ function useChat({
|
|
|
28187
28406
|
reconnectInterval = 3e3,
|
|
28188
28407
|
maxReconnectAttempts = 5
|
|
28189
28408
|
}) {
|
|
28190
|
-
const [isConnected, setIsConnected] = (0,
|
|
28191
|
-
const [messages, setMessages] = (0,
|
|
28192
|
-
const [participants, setParticipants] = (0,
|
|
28193
|
-
const [error, setError] = (0,
|
|
28194
|
-
const wsRef = (0,
|
|
28195
|
-
const reconnectAttemptsRef = (0,
|
|
28196
|
-
const reconnectTimeoutRef = (0,
|
|
28409
|
+
const [isConnected, setIsConnected] = (0, import_react93.useState)(false);
|
|
28410
|
+
const [messages, setMessages] = (0, import_react93.useState)([]);
|
|
28411
|
+
const [participants, setParticipants] = (0, import_react93.useState)([]);
|
|
28412
|
+
const [error, setError] = (0, import_react93.useState)(null);
|
|
28413
|
+
const wsRef = (0, import_react93.useRef)(null);
|
|
28414
|
+
const reconnectAttemptsRef = (0, import_react93.useRef)(0);
|
|
28415
|
+
const reconnectTimeoutRef = (0, import_react93.useRef)(
|
|
28197
28416
|
null
|
|
28198
28417
|
);
|
|
28199
|
-
const isManualDisconnectRef = (0,
|
|
28200
|
-
const isConnectingRef = (0,
|
|
28201
|
-
const connectRef = (0,
|
|
28418
|
+
const isManualDisconnectRef = (0, import_react93.useRef)(false);
|
|
28419
|
+
const isConnectingRef = (0, import_react93.useRef)(false);
|
|
28420
|
+
const connectRef = (0, import_react93.useRef)(() => {
|
|
28202
28421
|
});
|
|
28203
|
-
const sendWsMessage = (0,
|
|
28422
|
+
const sendWsMessage = (0, import_react93.useCallback)((message) => {
|
|
28204
28423
|
if (wsRef.current?.readyState === WS_STATES.OPEN) {
|
|
28205
28424
|
wsRef.current.send(JSON.stringify(message));
|
|
28206
28425
|
}
|
|
28207
28426
|
}, []);
|
|
28208
|
-
const sendMessage = (0,
|
|
28427
|
+
const sendMessage = (0, import_react93.useCallback)(
|
|
28209
28428
|
(content) => {
|
|
28210
28429
|
const trimmedContent = content.trim();
|
|
28211
28430
|
if (!trimmedContent) return;
|
|
@@ -28216,12 +28435,12 @@ function useChat({
|
|
|
28216
28435
|
},
|
|
28217
28436
|
[sendWsMessage]
|
|
28218
28437
|
);
|
|
28219
|
-
const leave = (0,
|
|
28438
|
+
const leave = (0, import_react93.useCallback)(() => {
|
|
28220
28439
|
isManualDisconnectRef.current = true;
|
|
28221
28440
|
sendWsMessage({ type: "leave" });
|
|
28222
28441
|
wsRef.current?.close(1e3, "User left");
|
|
28223
28442
|
}, [sendWsMessage]);
|
|
28224
|
-
const handleMessage = (0,
|
|
28443
|
+
const handleMessage = (0, import_react93.useCallback)(
|
|
28225
28444
|
(event) => {
|
|
28226
28445
|
try {
|
|
28227
28446
|
const data = JSON.parse(event.data);
|
|
@@ -28289,7 +28508,7 @@ function useChat({
|
|
|
28289
28508
|
},
|
|
28290
28509
|
[onError]
|
|
28291
28510
|
);
|
|
28292
|
-
const connect = (0,
|
|
28511
|
+
const connect = (0, import_react93.useCallback)(() => {
|
|
28293
28512
|
if (isConnectingRef.current) {
|
|
28294
28513
|
return;
|
|
28295
28514
|
}
|
|
@@ -28343,12 +28562,12 @@ function useChat({
|
|
|
28343
28562
|
maxReconnectAttempts
|
|
28344
28563
|
]);
|
|
28345
28564
|
connectRef.current = connect;
|
|
28346
|
-
const reconnect = (0,
|
|
28565
|
+
const reconnect = (0, import_react93.useCallback)(() => {
|
|
28347
28566
|
isManualDisconnectRef.current = false;
|
|
28348
28567
|
reconnectAttemptsRef.current = 0;
|
|
28349
28568
|
connectRef.current();
|
|
28350
28569
|
}, []);
|
|
28351
|
-
(0,
|
|
28570
|
+
(0, import_react93.useEffect)(() => {
|
|
28352
28571
|
if (!roomId) {
|
|
28353
28572
|
return;
|
|
28354
28573
|
}
|
|
@@ -28392,15 +28611,15 @@ function createUseChat(baseWsUrl) {
|
|
|
28392
28611
|
}
|
|
28393
28612
|
|
|
28394
28613
|
// src/hooks/useChatRooms.ts
|
|
28395
|
-
var
|
|
28614
|
+
var import_react94 = require("react");
|
|
28396
28615
|
function useChatRooms({
|
|
28397
28616
|
apiClient
|
|
28398
28617
|
}) {
|
|
28399
|
-
const [rooms, setRooms] = (0,
|
|
28400
|
-
const [availableUsers, setAvailableUsers] = (0,
|
|
28401
|
-
const [loading, setLoading] = (0,
|
|
28402
|
-
const [error, setError] = (0,
|
|
28403
|
-
const fetchRooms = (0,
|
|
28618
|
+
const [rooms, setRooms] = (0, import_react94.useState)([]);
|
|
28619
|
+
const [availableUsers, setAvailableUsers] = (0, import_react94.useState)([]);
|
|
28620
|
+
const [loading, setLoading] = (0, import_react94.useState)(false);
|
|
28621
|
+
const [error, setError] = (0, import_react94.useState)(null);
|
|
28622
|
+
const fetchRooms = (0, import_react94.useCallback)(async () => {
|
|
28404
28623
|
setLoading(true);
|
|
28405
28624
|
setError(null);
|
|
28406
28625
|
try {
|
|
@@ -28416,7 +28635,7 @@ function useChatRooms({
|
|
|
28416
28635
|
setLoading(false);
|
|
28417
28636
|
}
|
|
28418
28637
|
}, [apiClient]);
|
|
28419
|
-
const fetchAvailableUsers = (0,
|
|
28638
|
+
const fetchAvailableUsers = (0, import_react94.useCallback)(async () => {
|
|
28420
28639
|
setLoading(true);
|
|
28421
28640
|
setError(null);
|
|
28422
28641
|
try {
|
|
@@ -28432,7 +28651,7 @@ function useChatRooms({
|
|
|
28432
28651
|
setLoading(false);
|
|
28433
28652
|
}
|
|
28434
28653
|
}, [apiClient]);
|
|
28435
|
-
const createRoom = (0,
|
|
28654
|
+
const createRoom = (0, import_react94.useCallback)(
|
|
28436
28655
|
async (participantIds) => {
|
|
28437
28656
|
setLoading(true);
|
|
28438
28657
|
setError(null);
|
|
@@ -28456,7 +28675,7 @@ function useChatRooms({
|
|
|
28456
28675
|
},
|
|
28457
28676
|
[apiClient, fetchRooms]
|
|
28458
28677
|
);
|
|
28459
|
-
const clearError = (0,
|
|
28678
|
+
const clearError = (0, import_react94.useCallback)(() => {
|
|
28460
28679
|
setError(null);
|
|
28461
28680
|
}, []);
|
|
28462
28681
|
return {
|
|
@@ -28490,8 +28709,8 @@ var CHAT_MESSAGE_TYPES = {
|
|
|
28490
28709
|
};
|
|
28491
28710
|
|
|
28492
28711
|
// src/components/Chat/Chat.tsx
|
|
28493
|
-
var
|
|
28494
|
-
var
|
|
28712
|
+
var import_react95 = require("react");
|
|
28713
|
+
var import_react96 = require("@phosphor-icons/react");
|
|
28495
28714
|
var import_jsx_runtime125 = require("react/jsx-runtime");
|
|
28496
28715
|
var RoomItem = ({
|
|
28497
28716
|
room,
|
|
@@ -28508,7 +28727,7 @@ var RoomItem = ({
|
|
|
28508
28727
|
isActive && "bg-primary-50 border-l-4 border-primary-500"
|
|
28509
28728
|
),
|
|
28510
28729
|
children: /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "flex items-start gap-3 w-full", children: [
|
|
28511
|
-
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "w-10 h-10 rounded-full bg-primary-100 flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
28730
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "w-10 h-10 rounded-full bg-primary-100 flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_react96.UsersIcon, { size: 20, className: "text-primary-600" }) }),
|
|
28512
28731
|
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
28513
28732
|
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Text_default, { size: "sm", weight: "semibold", className: "text-text-900 truncate", children: room.name }),
|
|
28514
28733
|
room.lastMessage && /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(Text_default, { size: "xs", className: "text-text-500 truncate mt-1", children: [
|
|
@@ -28638,16 +28857,16 @@ function ChatContent({
|
|
|
28638
28857
|
onRoomChange,
|
|
28639
28858
|
onBackToList
|
|
28640
28859
|
}) {
|
|
28641
|
-
const [view, setView] = (0,
|
|
28642
|
-
const [selectedRoom, setSelectedRoom] = (0,
|
|
28860
|
+
const [view, setView] = (0, import_react95.useState)("list");
|
|
28861
|
+
const [selectedRoom, setSelectedRoom] = (0, import_react95.useState)(
|
|
28643
28862
|
null
|
|
28644
28863
|
);
|
|
28645
|
-
const [selectedUserIds, setSelectedUserIds] = (0,
|
|
28864
|
+
const [selectedUserIds, setSelectedUserIds] = (0, import_react95.useState)(
|
|
28646
28865
|
/* @__PURE__ */ new Set()
|
|
28647
28866
|
);
|
|
28648
|
-
const [messageInput, setMessageInput] = (0,
|
|
28649
|
-
const [showCreateModal, setShowCreateModal] = (0,
|
|
28650
|
-
const hasHandledInitialRoomRef = (0,
|
|
28867
|
+
const [messageInput, setMessageInput] = (0, import_react95.useState)("");
|
|
28868
|
+
const [showCreateModal, setShowCreateModal] = (0, import_react95.useState)(false);
|
|
28869
|
+
const hasHandledInitialRoomRef = (0, import_react95.useRef)(false);
|
|
28651
28870
|
const {
|
|
28652
28871
|
rooms,
|
|
28653
28872
|
availableUsers,
|
|
@@ -28675,10 +28894,10 @@ function ChatContent({
|
|
|
28675
28894
|
const getRoleLabel = () => {
|
|
28676
28895
|
return userRole === "TEACHER" /* TEACHER */ ? "Professor" : "Aluno";
|
|
28677
28896
|
};
|
|
28678
|
-
(0,
|
|
28897
|
+
(0, import_react95.useEffect)(() => {
|
|
28679
28898
|
fetchRooms();
|
|
28680
28899
|
}, [fetchRooms]);
|
|
28681
|
-
(0,
|
|
28900
|
+
(0, import_react95.useEffect)(() => {
|
|
28682
28901
|
if (hasHandledInitialRoomRef.current) {
|
|
28683
28902
|
return;
|
|
28684
28903
|
}
|
|
@@ -28700,7 +28919,7 @@ function ChatContent({
|
|
|
28700
28919
|
onBackToList?.();
|
|
28701
28920
|
}
|
|
28702
28921
|
}, [initialRoomId, rooms, roomsLoading, onBackToList]);
|
|
28703
|
-
const handleSelectRoom = (0,
|
|
28922
|
+
const handleSelectRoom = (0, import_react95.useCallback)(
|
|
28704
28923
|
(room) => {
|
|
28705
28924
|
setSelectedRoom(room);
|
|
28706
28925
|
setView("room");
|
|
@@ -28708,12 +28927,12 @@ function ChatContent({
|
|
|
28708
28927
|
},
|
|
28709
28928
|
[onRoomChange]
|
|
28710
28929
|
);
|
|
28711
|
-
const handleOpenCreateModal = (0,
|
|
28930
|
+
const handleOpenCreateModal = (0, import_react95.useCallback)(async () => {
|
|
28712
28931
|
await fetchAvailableUsers();
|
|
28713
28932
|
setSelectedUserIds(/* @__PURE__ */ new Set());
|
|
28714
28933
|
setShowCreateModal(true);
|
|
28715
28934
|
}, [fetchAvailableUsers]);
|
|
28716
|
-
const handleToggleUser = (0,
|
|
28935
|
+
const handleToggleUser = (0, import_react95.useCallback)((id) => {
|
|
28717
28936
|
setSelectedUserIds((prev) => {
|
|
28718
28937
|
const next = new Set(prev);
|
|
28719
28938
|
if (next.has(id)) {
|
|
@@ -28724,7 +28943,7 @@ function ChatContent({
|
|
|
28724
28943
|
return next;
|
|
28725
28944
|
});
|
|
28726
28945
|
}, []);
|
|
28727
|
-
const handleCreateRoom = (0,
|
|
28946
|
+
const handleCreateRoom = (0, import_react95.useCallback)(async () => {
|
|
28728
28947
|
if (selectedUserIds.size === 0) return;
|
|
28729
28948
|
const room = await createRoom(Array.from(selectedUserIds));
|
|
28730
28949
|
if (room) {
|
|
@@ -28733,12 +28952,12 @@ function ChatContent({
|
|
|
28733
28952
|
onRoomChange?.(room.id);
|
|
28734
28953
|
}
|
|
28735
28954
|
}, [selectedUserIds, createRoom, onRoomChange]);
|
|
28736
|
-
const handleSendMessage = (0,
|
|
28955
|
+
const handleSendMessage = (0, import_react95.useCallback)(() => {
|
|
28737
28956
|
if (!messageInput.trim()) return;
|
|
28738
28957
|
sendMessage(messageInput);
|
|
28739
28958
|
setMessageInput("");
|
|
28740
28959
|
}, [messageInput, sendMessage]);
|
|
28741
|
-
const handleBackToList = (0,
|
|
28960
|
+
const handleBackToList = (0, import_react95.useCallback)(() => {
|
|
28742
28961
|
setSelectedRoom(null);
|
|
28743
28962
|
setView("list");
|
|
28744
28963
|
onBackToList?.();
|
|
@@ -28791,7 +29010,7 @@ function ChatContent({
|
|
|
28791
29010
|
variant: "solid",
|
|
28792
29011
|
size: "small",
|
|
28793
29012
|
onClick: handleOpenCreateModal,
|
|
28794
|
-
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
29013
|
+
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_react96.PlusIcon, { size: 16 }),
|
|
28795
29014
|
children: "Nova conversa"
|
|
28796
29015
|
}
|
|
28797
29016
|
)
|
|
@@ -28831,7 +29050,7 @@ function ChatContent({
|
|
|
28831
29050
|
return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "flex h-full", children: [
|
|
28832
29051
|
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "flex-1 flex flex-col", children: [
|
|
28833
29052
|
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "p-4 border-b border-background-200 flex items-center gap-3", children: [
|
|
28834
|
-
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Button_default, { variant: "link", size: "small", onClick: handleBackToList, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
29053
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Button_default, { variant: "link", size: "small", onClick: handleBackToList, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_react96.XIcon, { size: 20 }) }),
|
|
28835
29054
|
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "flex-1", children: [
|
|
28836
29055
|
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Text_default, { size: "md", weight: "semibold", className: "text-text-900", children: selectedRoom.name }),
|
|
28837
29056
|
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Text_default, { size: "xs", className: "text-text-500", children: isConnected ? "Conectado" : "Conectando..." })
|
|
@@ -28860,7 +29079,7 @@ function ChatContent({
|
|
|
28860
29079
|
variant: "solid",
|
|
28861
29080
|
onClick: handleSendMessage,
|
|
28862
29081
|
disabled: !messageInput.trim() || !isConnected,
|
|
28863
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
29082
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_react96.PaperPlaneTiltIcon, { size: 20 })
|
|
28864
29083
|
}
|
|
28865
29084
|
)
|
|
28866
29085
|
] }) })
|
|
@@ -28984,7 +29203,7 @@ var CalendarActivityStatus = /* @__PURE__ */ ((CalendarActivityStatus2) => {
|
|
|
28984
29203
|
})(CalendarActivityStatus || {});
|
|
28985
29204
|
|
|
28986
29205
|
// src/hooks/useSendActivity.ts
|
|
28987
|
-
var
|
|
29206
|
+
var import_react97 = require("react");
|
|
28988
29207
|
var import_dayjs7 = __toESM(require("dayjs"));
|
|
28989
29208
|
function transformToCategoryConfig(data) {
|
|
28990
29209
|
return [
|
|
@@ -29039,21 +29258,21 @@ function useSendActivity(config) {
|
|
|
29039
29258
|
onSuccess,
|
|
29040
29259
|
onError
|
|
29041
29260
|
} = config;
|
|
29042
|
-
const [isOpen, setIsOpen] = (0,
|
|
29043
|
-
const [selectedModel, setSelectedModel] = (0,
|
|
29261
|
+
const [isOpen, setIsOpen] = (0, import_react97.useState)(false);
|
|
29262
|
+
const [selectedModel, setSelectedModel] = (0, import_react97.useState)(
|
|
29044
29263
|
null
|
|
29045
29264
|
);
|
|
29046
|
-
const [categories, setCategories] = (0,
|
|
29047
|
-
const [isLoading, setIsLoading] = (0,
|
|
29048
|
-
const [isCategoriesLoading, setIsCategoriesLoading] = (0,
|
|
29049
|
-
const categoriesLoadedRef = (0,
|
|
29050
|
-
const initialData = (0,
|
|
29265
|
+
const [categories, setCategories] = (0, import_react97.useState)([]);
|
|
29266
|
+
const [isLoading, setIsLoading] = (0, import_react97.useState)(false);
|
|
29267
|
+
const [isCategoriesLoading, setIsCategoriesLoading] = (0, import_react97.useState)(false);
|
|
29268
|
+
const categoriesLoadedRef = (0, import_react97.useRef)(false);
|
|
29269
|
+
const initialData = (0, import_react97.useMemo)(() => {
|
|
29051
29270
|
if (!selectedModel) return void 0;
|
|
29052
29271
|
return {
|
|
29053
29272
|
title: selectedModel.title
|
|
29054
29273
|
};
|
|
29055
29274
|
}, [selectedModel]);
|
|
29056
|
-
const loadCategories = (0,
|
|
29275
|
+
const loadCategories = (0, import_react97.useCallback)(async () => {
|
|
29057
29276
|
if (categoriesLoadedRef.current) return;
|
|
29058
29277
|
setIsCategoriesLoading(true);
|
|
29059
29278
|
try {
|
|
@@ -29068,7 +29287,7 @@ function useSendActivity(config) {
|
|
|
29068
29287
|
setIsCategoriesLoading(false);
|
|
29069
29288
|
}
|
|
29070
29289
|
}, [fetchCategories, onError]);
|
|
29071
|
-
const openModal = (0,
|
|
29290
|
+
const openModal = (0, import_react97.useCallback)(
|
|
29072
29291
|
(model) => {
|
|
29073
29292
|
setSelectedModel(model);
|
|
29074
29293
|
setIsOpen(true);
|
|
@@ -29076,17 +29295,17 @@ function useSendActivity(config) {
|
|
|
29076
29295
|
},
|
|
29077
29296
|
[loadCategories]
|
|
29078
29297
|
);
|
|
29079
|
-
const closeModal = (0,
|
|
29298
|
+
const closeModal = (0, import_react97.useCallback)(() => {
|
|
29080
29299
|
setIsOpen(false);
|
|
29081
29300
|
setSelectedModel(null);
|
|
29082
29301
|
}, []);
|
|
29083
|
-
const onCategoriesChange = (0,
|
|
29302
|
+
const onCategoriesChange = (0, import_react97.useCallback)(
|
|
29084
29303
|
(updatedCategories) => {
|
|
29085
29304
|
setCategories(updatedCategories);
|
|
29086
29305
|
},
|
|
29087
29306
|
[]
|
|
29088
29307
|
);
|
|
29089
|
-
const handleSubmit = (0,
|
|
29308
|
+
const handleSubmit = (0, import_react97.useCallback)(
|
|
29090
29309
|
async (data) => {
|
|
29091
29310
|
if (!selectedModel) return;
|
|
29092
29311
|
setIsLoading(true);
|
|
@@ -29343,6 +29562,7 @@ function useSendActivity(config) {
|
|
|
29343
29562
|
createQuestionsListHook,
|
|
29344
29563
|
createRecommendedLessonDetailsHook,
|
|
29345
29564
|
createRecommendedLessonsHistoryHook,
|
|
29565
|
+
createRecommendedLessonsPageHook,
|
|
29346
29566
|
createUseActivitiesHistory,
|
|
29347
29567
|
createUseActivityFiltersData,
|
|
29348
29568
|
createUseActivityModels,
|
|
@@ -29354,6 +29574,7 @@ function useSendActivity(config) {
|
|
|
29354
29574
|
createUseQuestionsList,
|
|
29355
29575
|
createUseRecommendedLessonDetails,
|
|
29356
29576
|
createUseRecommendedLessonsHistory,
|
|
29577
|
+
createUseRecommendedLessonsPage,
|
|
29357
29578
|
createZustandAuthAdapter,
|
|
29358
29579
|
deriveStudentStatus,
|
|
29359
29580
|
determineGoalStatus,
|