analytica-frontend-lib 1.2.86 → 1.2.87
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/ActivitiesHistory/index.js.map +1 -1
- package/dist/ActivitiesHistory/index.mjs.map +1 -1
- package/dist/NotificationCard/index.js +1 -1
- package/dist/NotificationCard/index.js.map +1 -1
- package/dist/NotificationCard/index.mjs +1 -1
- package/dist/NotificationCard/index.mjs.map +1 -1
- package/dist/RecommendedLessonsHistory/index.d.ts +1 -1
- package/dist/RecommendedLessonsHistory/index.d.ts.map +1 -1
- package/dist/RecommendedLessonsHistory/index.js +148 -142
- package/dist/RecommendedLessonsHistory/index.js.map +1 -1
- package/dist/RecommendedLessonsHistory/index.mjs +147 -141
- package/dist/RecommendedLessonsHistory/index.mjs.map +1 -1
- package/dist/hooks/useActivitiesHistory/index.js.map +1 -1
- package/dist/hooks/useActivitiesHistory/index.mjs.map +1 -1
- package/dist/hooks/useNotifications.d.ts +2 -2
- package/dist/hooks/useNotifications.d.ts.map +1 -1
- package/dist/hooks/useRecommendedClassDrafts/index.d.ts +57 -0
- package/dist/hooks/useRecommendedClassDrafts/index.d.ts.map +1 -0
- package/dist/hooks/{useGoalDrafts → useRecommendedClassDrafts}/index.js +40 -40
- package/dist/hooks/useRecommendedClassDrafts/index.js.map +1 -0
- package/dist/hooks/{useGoalDrafts → useRecommendedClassDrafts}/index.mjs +33 -33
- package/dist/hooks/useRecommendedClassDrafts/index.mjs.map +1 -0
- package/dist/hooks/useRecommendedClassDrafts.d.ts +57 -0
- package/dist/hooks/useRecommendedClassDrafts.d.ts.map +1 -0
- package/dist/hooks/{useGoalModels.d.ts → useRecommendedClassModels.d.ts} +32 -32
- package/dist/hooks/useRecommendedClassModels.d.ts.map +1 -0
- package/dist/hooks/useRecommendedLessonDetails.d.ts +44 -44
- package/dist/hooks/useRecommendedLessonDetails.d.ts.map +1 -1
- package/dist/hooks/useRecommendedLessons/index.d.ts +35 -35
- package/dist/hooks/useRecommendedLessons/index.d.ts.map +1 -1
- package/dist/hooks/useRecommendedLessons/index.js +41 -41
- package/dist/hooks/useRecommendedLessons/index.js.map +1 -1
- package/dist/hooks/useRecommendedLessons/index.mjs +37 -37
- package/dist/hooks/useRecommendedLessons/index.mjs.map +1 -1
- package/dist/hooks/useRecommendedLessons.d.ts +35 -35
- package/dist/hooks/useRecommendedLessons.d.ts.map +1 -1
- package/dist/hooks/useRecommendedLessonsPage/index.d.ts +21 -21
- package/dist/hooks/useRecommendedLessonsPage/index.d.ts.map +1 -1
- package/dist/hooks/useRecommendedLessonsPage/index.js +39 -33
- package/dist/hooks/useRecommendedLessonsPage/index.js.map +1 -1
- package/dist/hooks/useRecommendedLessonsPage/index.mjs +39 -33
- package/dist/hooks/useRecommendedLessonsPage/index.mjs.map +1 -1
- package/dist/hooks/useRecommendedLessonsPage.d.ts +21 -21
- package/dist/hooks/useRecommendedLessonsPage.d.ts.map +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +304 -288
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +278 -262
- package/dist/index.mjs.map +1 -1
- package/dist/store/notificationStore.d.ts.map +1 -1
- package/dist/types/activitiesHistory/index.js.map +1 -1
- package/dist/types/activitiesHistory/index.mjs.map +1 -1
- package/dist/types/common.d.ts +2 -2
- package/dist/types/notifications.d.ts +5 -5
- package/dist/types/notifications.d.ts.map +1 -1
- package/dist/types/recommendedLessons/index.d.ts +112 -112
- package/dist/types/recommendedLessons/index.d.ts.map +1 -1
- package/dist/types/recommendedLessons/index.js +25 -25
- package/dist/types/recommendedLessons/index.js.map +1 -1
- package/dist/types/recommendedLessons/index.mjs +17 -17
- package/dist/types/recommendedLessons/index.mjs.map +1 -1
- package/dist/types/recommendedLessons.d.ts +112 -112
- package/dist/types/recommendedLessons.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/hooks/useGoalDrafts/index.d.ts +0 -57
- package/dist/hooks/useGoalDrafts/index.d.ts.map +0 -1
- package/dist/hooks/useGoalDrafts/index.js.map +0 -1
- package/dist/hooks/useGoalDrafts/index.mjs.map +0 -1
- package/dist/hooks/useGoalDrafts.d.ts +0 -57
- package/dist/hooks/useGoalDrafts.d.ts.map +0 -1
- package/dist/hooks/useGoalModels.d.ts.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -12739,7 +12739,7 @@ import { devtools as devtools3 } from "zustand/middleware";
|
|
|
12739
12739
|
var NotificationEntityType = /* @__PURE__ */ ((NotificationEntityType2) => {
|
|
12740
12740
|
NotificationEntityType2["ACTIVITY"] = "ACTIVITY";
|
|
12741
12741
|
NotificationEntityType2["TRAIL"] = "TRAIL";
|
|
12742
|
-
NotificationEntityType2["
|
|
12742
|
+
NotificationEntityType2["RECOMMENDEDCLASS"] = "RECOMMENDEDCLASS";
|
|
12743
12743
|
return NotificationEntityType2;
|
|
12744
12744
|
})(NotificationEntityType || {});
|
|
12745
12745
|
|
|
@@ -12748,8 +12748,7 @@ var mapBackendNotification = (backendNotification) => {
|
|
|
12748
12748
|
let type = "GENERAL";
|
|
12749
12749
|
let entityType = null;
|
|
12750
12750
|
if (backendNotification.entityType) {
|
|
12751
|
-
|
|
12752
|
-
switch (backendEntityType) {
|
|
12751
|
+
switch (backendNotification.entityType.toUpperCase()) {
|
|
12753
12752
|
case "ACTIVITY" /* ACTIVITY */:
|
|
12754
12753
|
type = "ACTIVITY";
|
|
12755
12754
|
entityType = "ACTIVITY" /* ACTIVITY */;
|
|
@@ -12758,9 +12757,9 @@ var mapBackendNotification = (backendNotification) => {
|
|
|
12758
12757
|
type = "TRAIL";
|
|
12759
12758
|
entityType = "TRAIL" /* TRAIL */;
|
|
12760
12759
|
break;
|
|
12761
|
-
case "
|
|
12762
|
-
type = "
|
|
12763
|
-
entityType = "
|
|
12760
|
+
case "RECOMMENDEDCLASS" /* RECOMMENDEDCLASS */:
|
|
12761
|
+
type = "RECOMMENDEDCLASS";
|
|
12762
|
+
entityType = "RECOMMENDEDCLASS" /* RECOMMENDEDCLASS */;
|
|
12764
12763
|
break;
|
|
12765
12764
|
default:
|
|
12766
12765
|
break;
|
|
@@ -12777,7 +12776,7 @@ var mapBackendNotification = (backendNotification) => {
|
|
|
12777
12776
|
entityId: backendNotification.entityId,
|
|
12778
12777
|
sender: backendNotification.sender,
|
|
12779
12778
|
activity: backendNotification.activity,
|
|
12780
|
-
|
|
12779
|
+
recommendedClass: backendNotification.recommendedClass,
|
|
12781
12780
|
actionLink: backendNotification.actionLink ?? null
|
|
12782
12781
|
};
|
|
12783
12782
|
};
|
|
@@ -13153,7 +13152,7 @@ var NotificationList = ({
|
|
|
13153
13152
|
groupedNotifications.map((group, idx) => /* @__PURE__ */ jsxs52("div", { className: "flex flex-col", children: [
|
|
13154
13153
|
/* @__PURE__ */ jsx65("div", { className: "flex items-end px-4 py-6 pb-4", children: /* @__PURE__ */ jsx65("h4", { className: "text-lg font-bold text-text-500 flex-grow", children: group.label }) }),
|
|
13155
13154
|
group.notifications.map((notification) => {
|
|
13156
|
-
const isGlobalNotification = !notification.entityType && !notification.entityId && !notification.activity && !notification.
|
|
13155
|
+
const isGlobalNotification = !notification.entityType && !notification.entityId && !notification.activity && !notification.recommendedClass;
|
|
13157
13156
|
let navigationHandler;
|
|
13158
13157
|
if (isGlobalNotification) {
|
|
13159
13158
|
navigationHandler = () => handleGlobalNotificationClick(notification);
|
|
@@ -13703,7 +13702,8 @@ var createUseNotifications = (apiClient) => {
|
|
|
13703
13702
|
case "ACTIVITY" /* ACTIVITY */:
|
|
13704
13703
|
window.location.href = `/atividades/${entityId}`;
|
|
13705
13704
|
break;
|
|
13706
|
-
case "
|
|
13705
|
+
case "RECOMMENDEDCLASS" /* RECOMMENDEDCLASS */:
|
|
13706
|
+
case "RECOMMENDEDCLASS":
|
|
13707
13707
|
window.location.href = `/painel/trilhas/${entityId}`;
|
|
13708
13708
|
break;
|
|
13709
13709
|
default:
|
|
@@ -13720,7 +13720,8 @@ var createUseNotifications = (apiClient) => {
|
|
|
13720
13720
|
switch (entityType.toUpperCase()) {
|
|
13721
13721
|
case "ACTIVITY" /* ACTIVITY */:
|
|
13722
13722
|
return "Ver atividade";
|
|
13723
|
-
case "
|
|
13723
|
+
case "RECOMMENDEDCLASS" /* RECOMMENDEDCLASS */:
|
|
13724
|
+
case "RECOMMENDEDCLASS":
|
|
13724
13725
|
return "Ver meta";
|
|
13725
13726
|
default:
|
|
13726
13727
|
return void 0;
|
|
@@ -26112,12 +26113,12 @@ import { useState as useState50, useCallback as useCallback29, useMemo as useMem
|
|
|
26112
26113
|
import { Plus as Plus5, CaretRight as CaretRight10, Trash as Trash4, PencilSimple as PencilSimple4 } from "phosphor-react";
|
|
26113
26114
|
|
|
26114
26115
|
// src/types/recommendedLessons.ts
|
|
26115
|
-
var
|
|
26116
|
-
var
|
|
26116
|
+
var getRecommendedClassStatusBadgeAction = (status) => getStatusBadgeAction(status);
|
|
26117
|
+
var RECOMMENDED_CLASS_FILTER_STATUS_OPTIONS = [
|
|
26117
26118
|
{ id: "VENCIDA" /* VENCIDA */, name: "Vencida" },
|
|
26118
26119
|
{ id: "A_VENCER" /* A_VENCER */, name: "Ativa" }
|
|
26119
26120
|
];
|
|
26120
|
-
var
|
|
26121
|
+
var RECOMMENDED_CLASS_STATUS_OPTIONS = [
|
|
26121
26122
|
{ id: "A_VENCER" /* A_VENCER */, name: "A Vencer" },
|
|
26122
26123
|
{ id: "VENCIDA" /* VENCIDA */, name: "Vencida" },
|
|
26123
26124
|
{ id: "CONCLUIDA" /* CONCLUIDA */, name: "Conclu\xEDda" }
|
|
@@ -26157,35 +26158,35 @@ var formatDaysToComplete = (daysToComplete) => {
|
|
|
26157
26158
|
if (daysToComplete === 1) return "1 dia";
|
|
26158
26159
|
return `${daysToComplete} dias`;
|
|
26159
26160
|
};
|
|
26160
|
-
var
|
|
26161
|
+
var RECOMMENDED_CLASS_ACTIVITY_STATUS = {
|
|
26161
26162
|
PENDENTE: "PENDENTE",
|
|
26162
26163
|
CONCLUIDA: "CONCLUIDA",
|
|
26163
26164
|
EXPIRADA: "EXPIRADA"
|
|
26164
26165
|
};
|
|
26165
|
-
var
|
|
26166
|
-
|
|
26167
|
-
|
|
26168
|
-
return
|
|
26169
|
-
})(
|
|
26166
|
+
var RecommendedClassDraftType = /* @__PURE__ */ ((RecommendedClassDraftType2) => {
|
|
26167
|
+
RecommendedClassDraftType2["MODELO"] = "MODELO";
|
|
26168
|
+
RecommendedClassDraftType2["RASCUNHO"] = "RASCUNHO";
|
|
26169
|
+
return RecommendedClassDraftType2;
|
|
26170
|
+
})(RecommendedClassDraftType || {});
|
|
26170
26171
|
|
|
26171
26172
|
// src/hooks/useRecommendedLessons.ts
|
|
26172
26173
|
import { useState as useState46, useCallback as useCallback25 } from "react";
|
|
26173
26174
|
import { z as z4 } from "zod";
|
|
26174
26175
|
import dayjs4 from "dayjs";
|
|
26175
|
-
var
|
|
26176
|
+
var recommendedClassSubjectSchema = z4.object({
|
|
26176
26177
|
id: z4.string().uuid(),
|
|
26177
26178
|
name: z4.string()
|
|
26178
26179
|
}).nullable();
|
|
26179
|
-
var
|
|
26180
|
+
var recommendedClassCreatorSchema = z4.object({
|
|
26180
26181
|
id: z4.string().uuid(),
|
|
26181
26182
|
name: z4.string()
|
|
26182
26183
|
}).nullable();
|
|
26183
|
-
var
|
|
26184
|
+
var recommendedClassStatsSchema = z4.object({
|
|
26184
26185
|
totalStudents: z4.number(),
|
|
26185
26186
|
completedCount: z4.number(),
|
|
26186
26187
|
completionPercentage: z4.number()
|
|
26187
26188
|
});
|
|
26188
|
-
var
|
|
26189
|
+
var recommendedClassBreakdownSchema = z4.object({
|
|
26189
26190
|
classId: z4.string().uuid(),
|
|
26190
26191
|
className: z4.string(),
|
|
26191
26192
|
schoolId: z4.string(),
|
|
@@ -26193,7 +26194,7 @@ var goalBreakdownSchema = z4.object({
|
|
|
26193
26194
|
studentCount: z4.number(),
|
|
26194
26195
|
completedCount: z4.number()
|
|
26195
26196
|
});
|
|
26196
|
-
var
|
|
26197
|
+
var recommendedClassDataSchema = z4.object({
|
|
26197
26198
|
id: z4.string().uuid(),
|
|
26198
26199
|
title: z4.string(),
|
|
26199
26200
|
startDate: z4.string().nullable(),
|
|
@@ -26202,21 +26203,21 @@ var goalDataSchema = z4.object({
|
|
|
26202
26203
|
progress: z4.number(),
|
|
26203
26204
|
totalLessons: z4.number()
|
|
26204
26205
|
});
|
|
26205
|
-
var
|
|
26206
|
-
|
|
26207
|
-
subject:
|
|
26208
|
-
creator:
|
|
26209
|
-
stats:
|
|
26210
|
-
breakdown: z4.array(
|
|
26206
|
+
var recommendedClassHistoryItemSchema = z4.object({
|
|
26207
|
+
recommendedClass: recommendedClassDataSchema,
|
|
26208
|
+
subject: recommendedClassSubjectSchema,
|
|
26209
|
+
creator: recommendedClassCreatorSchema,
|
|
26210
|
+
stats: recommendedClassStatsSchema,
|
|
26211
|
+
breakdown: z4.array(recommendedClassBreakdownSchema)
|
|
26211
26212
|
});
|
|
26212
|
-
var
|
|
26213
|
+
var recommendedClassHistoryApiResponseSchema = z4.object({
|
|
26213
26214
|
message: z4.string(),
|
|
26214
26215
|
data: z4.object({
|
|
26215
|
-
|
|
26216
|
+
recommendedClass: z4.array(recommendedClassHistoryItemSchema),
|
|
26216
26217
|
total: z4.number()
|
|
26217
26218
|
})
|
|
26218
26219
|
});
|
|
26219
|
-
var
|
|
26220
|
+
var determineRecommendedClassStatus = (finalDate, completionPercentage) => {
|
|
26220
26221
|
if (completionPercentage === 100) {
|
|
26221
26222
|
return "CONCLU\xCDDA" /* CONCLUIDA */;
|
|
26222
26223
|
}
|
|
@@ -26229,29 +26230,29 @@ var determineGoalStatus = (finalDate, completionPercentage) => {
|
|
|
26229
26230
|
}
|
|
26230
26231
|
return "ATIVA" /* ATIVA */;
|
|
26231
26232
|
};
|
|
26232
|
-
var
|
|
26233
|
+
var transformRecommendedClassToTableItem = (item) => {
|
|
26233
26234
|
const firstBreakdown = item.breakdown[0];
|
|
26234
26235
|
const schoolName = firstBreakdown?.schoolName || "-";
|
|
26235
26236
|
const className = firstBreakdown?.className || "-";
|
|
26236
26237
|
const classDisplay = item.breakdown.length > 1 ? `${item.breakdown.length} turmas` : className;
|
|
26237
26238
|
return {
|
|
26238
|
-
id: item.
|
|
26239
|
-
startDate: item.
|
|
26240
|
-
deadline: item.
|
|
26241
|
-
title: item.
|
|
26239
|
+
id: item.recommendedClass.id,
|
|
26240
|
+
startDate: item.recommendedClass.startDate ? dayjs4(item.recommendedClass.startDate).format("DD/MM") : "-",
|
|
26241
|
+
deadline: item.recommendedClass.finalDate ? dayjs4(item.recommendedClass.finalDate).format("DD/MM") : "-",
|
|
26242
|
+
title: item.recommendedClass.title,
|
|
26242
26243
|
school: schoolName,
|
|
26243
26244
|
year: "-",
|
|
26244
26245
|
// API doesn't provide year directly
|
|
26245
26246
|
subject: item.subject?.name || "-",
|
|
26246
26247
|
class: classDisplay,
|
|
26247
|
-
status:
|
|
26248
|
-
item.
|
|
26248
|
+
status: determineRecommendedClassStatus(
|
|
26249
|
+
item.recommendedClass.finalDate,
|
|
26249
26250
|
item.stats.completionPercentage
|
|
26250
26251
|
),
|
|
26251
26252
|
completionPercentage: item.stats.completionPercentage
|
|
26252
26253
|
};
|
|
26253
26254
|
};
|
|
26254
|
-
var
|
|
26255
|
+
var handleRecommendedClassFetchError = (error) => {
|
|
26255
26256
|
if (error instanceof z4.ZodError) {
|
|
26256
26257
|
console.error("Erro ao validar dados de hist\xF3rico de aulas:", error);
|
|
26257
26258
|
return "Erro ao validar dados de hist\xF3rico de aulas";
|
|
@@ -26259,10 +26260,10 @@ var handleGoalFetchError = (error) => {
|
|
|
26259
26260
|
console.error("Erro ao carregar hist\xF3rico de aulas:", error);
|
|
26260
26261
|
return "Erro ao carregar hist\xF3rico de aulas";
|
|
26261
26262
|
};
|
|
26262
|
-
var createUseRecommendedLessonsHistory = (
|
|
26263
|
+
var createUseRecommendedLessonsHistory = (fetchRecommendedClassHistory) => {
|
|
26263
26264
|
return () => {
|
|
26264
26265
|
const [state, setState] = useState46({
|
|
26265
|
-
|
|
26266
|
+
recommendedClass: [],
|
|
26266
26267
|
loading: false,
|
|
26267
26268
|
error: null,
|
|
26268
26269
|
pagination: {
|
|
@@ -26272,21 +26273,21 @@ var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
|
|
|
26272
26273
|
totalPages: 0
|
|
26273
26274
|
}
|
|
26274
26275
|
});
|
|
26275
|
-
const
|
|
26276
|
+
const fetchRecommendedClass = useCallback25(
|
|
26276
26277
|
async (filters) => {
|
|
26277
26278
|
setState((prev) => ({ ...prev, loading: true, error: null }));
|
|
26278
26279
|
try {
|
|
26279
|
-
const responseData = await
|
|
26280
|
-
const validatedData =
|
|
26281
|
-
const tableItems = validatedData.data.
|
|
26282
|
-
|
|
26280
|
+
const responseData = await fetchRecommendedClassHistory(filters);
|
|
26281
|
+
const validatedData = recommendedClassHistoryApiResponseSchema.parse(responseData);
|
|
26282
|
+
const tableItems = validatedData.data.recommendedClass.map(
|
|
26283
|
+
transformRecommendedClassToTableItem
|
|
26283
26284
|
);
|
|
26284
26285
|
const page = filters?.page || 1;
|
|
26285
26286
|
const limit = filters?.limit || 10;
|
|
26286
26287
|
const total = validatedData.data.total;
|
|
26287
26288
|
const totalPages = Math.ceil(total / limit);
|
|
26288
26289
|
setState({
|
|
26289
|
-
|
|
26290
|
+
recommendedClass: tableItems,
|
|
26290
26291
|
loading: false,
|
|
26291
26292
|
error: null,
|
|
26292
26293
|
pagination: {
|
|
@@ -26297,7 +26298,7 @@ var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
|
|
|
26297
26298
|
}
|
|
26298
26299
|
});
|
|
26299
26300
|
} catch (error) {
|
|
26300
|
-
const errorMessage =
|
|
26301
|
+
const errorMessage = handleRecommendedClassFetchError(error);
|
|
26301
26302
|
setState((prev) => ({
|
|
26302
26303
|
...prev,
|
|
26303
26304
|
loading: false,
|
|
@@ -26305,11 +26306,11 @@ var createUseRecommendedLessonsHistory = (fetchGoalsHistory) => {
|
|
|
26305
26306
|
}));
|
|
26306
26307
|
}
|
|
26307
26308
|
},
|
|
26308
|
-
[
|
|
26309
|
+
[fetchRecommendedClassHistory]
|
|
26309
26310
|
);
|
|
26310
26311
|
return {
|
|
26311
26312
|
...state,
|
|
26312
|
-
|
|
26313
|
+
fetchRecommendedClass
|
|
26313
26314
|
};
|
|
26314
26315
|
};
|
|
26315
26316
|
};
|
|
@@ -26510,7 +26511,7 @@ var getSubjectOptions = (data) => {
|
|
|
26510
26511
|
name: subject.name
|
|
26511
26512
|
}));
|
|
26512
26513
|
};
|
|
26513
|
-
var
|
|
26514
|
+
var createRecommendedClassModelsFiltersConfig = (userData) => [
|
|
26514
26515
|
{
|
|
26515
26516
|
key: "content",
|
|
26516
26517
|
label: "CONTE\xDADO",
|
|
@@ -26526,7 +26527,7 @@ var createGoalModelsFiltersConfig = (userData) => [
|
|
|
26526
26527
|
];
|
|
26527
26528
|
|
|
26528
26529
|
// src/components/RecommendedLessonsHistory/utils/filterBuilders.ts
|
|
26529
|
-
var
|
|
26530
|
+
var buildRecommendedClassModelsFiltersFromParams = (params) => {
|
|
26530
26531
|
const filters = {
|
|
26531
26532
|
page: params.page,
|
|
26532
26533
|
limit: params.limit
|
|
@@ -26540,7 +26541,7 @@ var buildGoalModelsFiltersFromParams = (params) => {
|
|
|
26540
26541
|
return filters;
|
|
26541
26542
|
};
|
|
26542
26543
|
|
|
26543
|
-
// src/hooks/
|
|
26544
|
+
// src/hooks/useRecommendedClassModels.ts
|
|
26544
26545
|
import { useState as useState48, useCallback as useCallback27 } from "react";
|
|
26545
26546
|
import { z as z6 } from "zod";
|
|
26546
26547
|
import dayjs5 from "dayjs";
|
|
@@ -26556,10 +26557,10 @@ var createFetchErrorHandler = (validationErrorMessage, genericErrorMessage) => (
|
|
|
26556
26557
|
return genericErrorMessage;
|
|
26557
26558
|
};
|
|
26558
26559
|
|
|
26559
|
-
// src/hooks/
|
|
26560
|
-
var
|
|
26560
|
+
// src/hooks/useRecommendedClassModels.ts
|
|
26561
|
+
var recommendedClassModelResponseSchema = z6.object({
|
|
26561
26562
|
id: z6.string().uuid(),
|
|
26562
|
-
type: z6.nativeEnum(
|
|
26563
|
+
type: z6.nativeEnum(RecommendedClassDraftType),
|
|
26563
26564
|
title: z6.string(),
|
|
26564
26565
|
description: z6.string().nullable(),
|
|
26565
26566
|
creatorUserInstitutionId: z6.string().uuid(),
|
|
@@ -26569,20 +26570,20 @@ var goalModelResponseSchema = z6.object({
|
|
|
26569
26570
|
createdAt: z6.string(),
|
|
26570
26571
|
updatedAt: z6.string()
|
|
26571
26572
|
});
|
|
26572
|
-
var
|
|
26573
|
+
var recommendedClassModelsApiResponseSchema = z6.object({
|
|
26573
26574
|
message: z6.string(),
|
|
26574
26575
|
data: z6.object({
|
|
26575
|
-
drafts: z6.array(
|
|
26576
|
+
drafts: z6.array(recommendedClassModelResponseSchema),
|
|
26576
26577
|
total: z6.number()
|
|
26577
26578
|
})
|
|
26578
26579
|
});
|
|
26579
|
-
var
|
|
26580
|
+
var DEFAULT_RECOMMENDED_CLASS_MODELS_PAGINATION = {
|
|
26580
26581
|
total: 0,
|
|
26581
26582
|
page: 1,
|
|
26582
26583
|
limit: 10,
|
|
26583
26584
|
totalPages: 0
|
|
26584
26585
|
};
|
|
26585
|
-
var
|
|
26586
|
+
var transformRecommendedClassModelToTableItem = (model, subjectsMap) => {
|
|
26586
26587
|
const subjectName = model.subjectId ? subjectsMap?.get(model.subjectId) || "" : "";
|
|
26587
26588
|
return {
|
|
26588
26589
|
id: model.id,
|
|
@@ -26592,26 +26593,26 @@ var transformGoalModelToTableItem = (model, subjectsMap) => {
|
|
|
26592
26593
|
subjectId: model.subjectId
|
|
26593
26594
|
};
|
|
26594
26595
|
};
|
|
26595
|
-
var
|
|
26596
|
+
var handleRecommendedClassModelFetchError = createFetchErrorHandler(
|
|
26596
26597
|
"Erro ao validar dados de modelos de aulas",
|
|
26597
26598
|
"Erro ao carregar modelos de aulas"
|
|
26598
26599
|
);
|
|
26599
|
-
var
|
|
26600
|
+
var createUseRecommendedClassModels = (fetchRecommendedClassModels, deleteRecommendedClassModel) => {
|
|
26600
26601
|
return () => {
|
|
26601
26602
|
const [state, setState] = useState48({
|
|
26602
26603
|
models: [],
|
|
26603
26604
|
loading: false,
|
|
26604
26605
|
error: null,
|
|
26605
|
-
pagination:
|
|
26606
|
+
pagination: DEFAULT_RECOMMENDED_CLASS_MODELS_PAGINATION
|
|
26606
26607
|
});
|
|
26607
26608
|
const fetchModels = useCallback27(
|
|
26608
26609
|
async (filters, subjectsMap) => {
|
|
26609
26610
|
setState((prev) => ({ ...prev, loading: true, error: null }));
|
|
26610
26611
|
try {
|
|
26611
|
-
const responseData = await
|
|
26612
|
-
const validatedData =
|
|
26612
|
+
const responseData = await fetchRecommendedClassModels(filters);
|
|
26613
|
+
const validatedData = recommendedClassModelsApiResponseSchema.parse(responseData);
|
|
26613
26614
|
const tableItems = validatedData.data.drafts.map(
|
|
26614
|
-
(model) =>
|
|
26615
|
+
(model) => transformRecommendedClassModelToTableItem(model, subjectsMap)
|
|
26615
26616
|
);
|
|
26616
26617
|
const limit = filters?.limit || 10;
|
|
26617
26618
|
const page = filters?.page || 1;
|
|
@@ -26629,7 +26630,7 @@ var createUseGoalModels = (fetchGoalModels, deleteGoalModel) => {
|
|
|
26629
26630
|
}
|
|
26630
26631
|
});
|
|
26631
26632
|
} catch (error) {
|
|
26632
|
-
const errorMessage =
|
|
26633
|
+
const errorMessage = handleRecommendedClassModelFetchError(error);
|
|
26633
26634
|
setState((prev) => ({
|
|
26634
26635
|
...prev,
|
|
26635
26636
|
loading: false,
|
|
@@ -26637,19 +26638,19 @@ var createUseGoalModels = (fetchGoalModels, deleteGoalModel) => {
|
|
|
26637
26638
|
}));
|
|
26638
26639
|
}
|
|
26639
26640
|
},
|
|
26640
|
-
[
|
|
26641
|
+
[fetchRecommendedClassModels]
|
|
26641
26642
|
);
|
|
26642
26643
|
const deleteModel = useCallback27(
|
|
26643
26644
|
async (id) => {
|
|
26644
26645
|
try {
|
|
26645
|
-
await
|
|
26646
|
+
await deleteRecommendedClassModel(id);
|
|
26646
26647
|
return true;
|
|
26647
26648
|
} catch (error) {
|
|
26648
26649
|
console.error("Erro ao deletar modelo:", error);
|
|
26649
26650
|
return false;
|
|
26650
26651
|
}
|
|
26651
26652
|
},
|
|
26652
|
-
[
|
|
26653
|
+
[deleteRecommendedClassModel]
|
|
26653
26654
|
);
|
|
26654
26655
|
return {
|
|
26655
26656
|
...state,
|
|
@@ -26658,27 +26659,27 @@ var createUseGoalModels = (fetchGoalModels, deleteGoalModel) => {
|
|
|
26658
26659
|
};
|
|
26659
26660
|
};
|
|
26660
26661
|
};
|
|
26661
|
-
var
|
|
26662
|
+
var createRecommendedClassModelsHook = createUseRecommendedClassModels;
|
|
26662
26663
|
|
|
26663
26664
|
// src/components/RecommendedLessonsHistory/tabs/ModelsTab.tsx
|
|
26664
26665
|
import { jsx as jsx118 } from "react/jsx-runtime";
|
|
26665
|
-
var
|
|
26666
|
+
var RECOMMENDED_CLASS_MODELS_CONFIG = {
|
|
26666
26667
|
entityName: "aula",
|
|
26667
26668
|
entityNamePlural: "aulas",
|
|
26668
|
-
testId: "
|
|
26669
|
+
testId: "recommendedClass-models-tab",
|
|
26669
26670
|
emptyStateTitle: "Crie modelos para agilizar suas aulas",
|
|
26670
26671
|
emptyStateDescription: "Salve modelos de aulas recomendadas para reutilizar e enviar rapidamente para suas turmas!",
|
|
26671
26672
|
searchPlaceholder: "Buscar modelo"
|
|
26672
26673
|
};
|
|
26673
|
-
var
|
|
26674
|
+
var RECOMMENDED_CLASS_COLUMNS_CONFIG = {
|
|
26674
26675
|
sendButtonLabel: "Enviar aula",
|
|
26675
26676
|
sendButtonAriaLabel: "Enviar aula",
|
|
26676
26677
|
deleteButtonAriaLabel: "Deletar modelo",
|
|
26677
26678
|
editButtonAriaLabel: "Editar modelo"
|
|
26678
26679
|
};
|
|
26679
|
-
var
|
|
26680
|
-
|
|
26681
|
-
|
|
26680
|
+
var RecommendedClassModelsTab = ({
|
|
26681
|
+
fetchRecommendedClassModels,
|
|
26682
|
+
deleteRecommendedClassModel,
|
|
26682
26683
|
onCreateModel,
|
|
26683
26684
|
onSendLesson,
|
|
26684
26685
|
onEditModel,
|
|
@@ -26690,8 +26691,8 @@ var GoalModelsTab = ({
|
|
|
26690
26691
|
}) => /* @__PURE__ */ jsx118(
|
|
26691
26692
|
ModelsTabBase,
|
|
26692
26693
|
{
|
|
26693
|
-
fetchModels:
|
|
26694
|
-
deleteModel:
|
|
26694
|
+
fetchModels: fetchRecommendedClassModels,
|
|
26695
|
+
deleteModel: deleteRecommendedClassModel,
|
|
26695
26696
|
onCreateModel,
|
|
26696
26697
|
onSend: onSendLesson,
|
|
26697
26698
|
onEditModel,
|
|
@@ -26700,17 +26701,17 @@ var GoalModelsTab = ({
|
|
|
26700
26701
|
mapSubjectNameToEnum: mapSubjectNameToEnum2,
|
|
26701
26702
|
userFilterData,
|
|
26702
26703
|
subjectsMap,
|
|
26703
|
-
config:
|
|
26704
|
+
config: RECOMMENDED_CLASS_MODELS_CONFIG,
|
|
26704
26705
|
createTableColumns: (mapSubject, send, edit, del) => createModelsTableColumnsBase(
|
|
26705
26706
|
mapSubject,
|
|
26706
26707
|
send,
|
|
26707
26708
|
edit,
|
|
26708
26709
|
del,
|
|
26709
|
-
|
|
26710
|
+
RECOMMENDED_CLASS_COLUMNS_CONFIG
|
|
26710
26711
|
),
|
|
26711
|
-
createFiltersConfig:
|
|
26712
|
-
buildFiltersFromParams:
|
|
26713
|
-
createUseModels:
|
|
26712
|
+
createFiltersConfig: createRecommendedClassModelsFiltersConfig,
|
|
26713
|
+
buildFiltersFromParams: buildRecommendedClassModelsFiltersFromParams,
|
|
26714
|
+
createUseModels: createUseRecommendedClassModels
|
|
26714
26715
|
}
|
|
26715
26716
|
);
|
|
26716
26717
|
|
|
@@ -26722,7 +26723,7 @@ var getSubjectOptions2 = (data) => {
|
|
|
26722
26723
|
name: subject.name
|
|
26723
26724
|
}));
|
|
26724
26725
|
};
|
|
26725
|
-
var
|
|
26726
|
+
var createRecommendedClassDraftsFiltersConfig = (userData) => [
|
|
26726
26727
|
{
|
|
26727
26728
|
key: "content",
|
|
26728
26729
|
label: "CONTE\xDADO",
|
|
@@ -26737,34 +26738,34 @@ var createGoalDraftsFiltersConfig = (userData) => [
|
|
|
26737
26738
|
}
|
|
26738
26739
|
];
|
|
26739
26740
|
|
|
26740
|
-
// src/hooks/
|
|
26741
|
+
// src/hooks/useRecommendedClassDrafts.ts
|
|
26741
26742
|
import { useState as useState49, useCallback as useCallback28 } from "react";
|
|
26742
|
-
var
|
|
26743
|
+
var DEFAULT_RECOMMENDED_CLASS_DRAFTS_PAGINATION = {
|
|
26743
26744
|
total: 0,
|
|
26744
26745
|
page: 1,
|
|
26745
26746
|
limit: 10,
|
|
26746
26747
|
totalPages: 0
|
|
26747
26748
|
};
|
|
26748
|
-
var
|
|
26749
|
+
var handleRecommendedClassDraftFetchError = createFetchErrorHandler(
|
|
26749
26750
|
"Erro ao validar dados de rascunhos de aulas",
|
|
26750
26751
|
"Erro ao carregar rascunhos de aulas"
|
|
26751
26752
|
);
|
|
26752
|
-
var
|
|
26753
|
+
var createUseRecommendedClassDrafts = (fetchRecommendedClassDrafts, deleteRecommendedClassDraft) => {
|
|
26753
26754
|
return () => {
|
|
26754
26755
|
const [state, setState] = useState49({
|
|
26755
26756
|
models: [],
|
|
26756
26757
|
loading: false,
|
|
26757
26758
|
error: null,
|
|
26758
|
-
pagination:
|
|
26759
|
+
pagination: DEFAULT_RECOMMENDED_CLASS_DRAFTS_PAGINATION
|
|
26759
26760
|
});
|
|
26760
26761
|
const fetchModels = useCallback28(
|
|
26761
26762
|
async (filters, subjectsMap) => {
|
|
26762
26763
|
setState((prev) => ({ ...prev, loading: true, error: null }));
|
|
26763
26764
|
try {
|
|
26764
|
-
const responseData = await
|
|
26765
|
-
const validatedData =
|
|
26765
|
+
const responseData = await fetchRecommendedClassDrafts(filters);
|
|
26766
|
+
const validatedData = recommendedClassModelsApiResponseSchema.parse(responseData);
|
|
26766
26767
|
const tableItems = validatedData.data.drafts.map(
|
|
26767
|
-
(draft) =>
|
|
26768
|
+
(draft) => transformRecommendedClassModelToTableItem(draft, subjectsMap)
|
|
26768
26769
|
);
|
|
26769
26770
|
const limit = filters?.limit || 10;
|
|
26770
26771
|
const page = filters?.page || 1;
|
|
@@ -26782,7 +26783,7 @@ var createUseGoalDrafts = (fetchGoalDrafts, deleteGoalDraft) => {
|
|
|
26782
26783
|
}
|
|
26783
26784
|
});
|
|
26784
26785
|
} catch (error) {
|
|
26785
|
-
const errorMessage =
|
|
26786
|
+
const errorMessage = handleRecommendedClassDraftFetchError(error);
|
|
26786
26787
|
setState((prev) => ({
|
|
26787
26788
|
...prev,
|
|
26788
26789
|
loading: false,
|
|
@@ -26790,19 +26791,19 @@ var createUseGoalDrafts = (fetchGoalDrafts, deleteGoalDraft) => {
|
|
|
26790
26791
|
}));
|
|
26791
26792
|
}
|
|
26792
26793
|
},
|
|
26793
|
-
[
|
|
26794
|
+
[fetchRecommendedClassDrafts]
|
|
26794
26795
|
);
|
|
26795
26796
|
const deleteModel = useCallback28(
|
|
26796
26797
|
async (id) => {
|
|
26797
26798
|
try {
|
|
26798
|
-
await
|
|
26799
|
+
await deleteRecommendedClassDraft(id);
|
|
26799
26800
|
return true;
|
|
26800
26801
|
} catch (error) {
|
|
26801
26802
|
console.error("Erro ao deletar rascunho:", error);
|
|
26802
26803
|
return false;
|
|
26803
26804
|
}
|
|
26804
26805
|
},
|
|
26805
|
-
[
|
|
26806
|
+
[deleteRecommendedClassDraft]
|
|
26806
26807
|
);
|
|
26807
26808
|
return {
|
|
26808
26809
|
...state,
|
|
@@ -26811,27 +26812,27 @@ var createUseGoalDrafts = (fetchGoalDrafts, deleteGoalDraft) => {
|
|
|
26811
26812
|
};
|
|
26812
26813
|
};
|
|
26813
26814
|
};
|
|
26814
|
-
var
|
|
26815
|
+
var createRecommendedClassDraftsHook = createUseRecommendedClassDrafts;
|
|
26815
26816
|
|
|
26816
26817
|
// src/components/RecommendedLessonsHistory/tabs/DraftsTab.tsx
|
|
26817
26818
|
import { jsx as jsx119 } from "react/jsx-runtime";
|
|
26818
|
-
var
|
|
26819
|
+
var RECOMMENDED_CLASS_DRAFTS_CONFIG = {
|
|
26819
26820
|
entityName: "rascunho",
|
|
26820
26821
|
entityNamePlural: "rascunhos",
|
|
26821
|
-
testId: "
|
|
26822
|
+
testId: "recommendedClass-drafts-tab",
|
|
26822
26823
|
emptyStateTitle: "Voc\xEA n\xE3o tem aulas recomendadas em rascunho",
|
|
26823
26824
|
emptyStateDescription: "As aulas recomendadas que voc\xEA come\xE7ar a criar, aparecer\xE3o aqui automaticamente como rascunhos. Tudo \xE9 salvo enquanto voc\xEA cria, continue de onde parou quando quiser!",
|
|
26824
26825
|
searchPlaceholder: "Buscar rascunho"
|
|
26825
26826
|
};
|
|
26826
|
-
var
|
|
26827
|
+
var RECOMMENDED_CLASS_DRAFTS_COLUMNS_CONFIG = {
|
|
26827
26828
|
sendButtonLabel: "Enviar aula",
|
|
26828
26829
|
sendButtonAriaLabel: "Enviar rascunho",
|
|
26829
26830
|
deleteButtonAriaLabel: "Deletar rascunho",
|
|
26830
26831
|
editButtonAriaLabel: "Editar rascunho"
|
|
26831
26832
|
};
|
|
26832
|
-
var
|
|
26833
|
-
|
|
26834
|
-
|
|
26833
|
+
var RecommendedClassDraftsTab = ({
|
|
26834
|
+
fetchRecommendedClassDrafts,
|
|
26835
|
+
deleteRecommendedClassDraft,
|
|
26835
26836
|
onCreateDraft,
|
|
26836
26837
|
onSendDraft,
|
|
26837
26838
|
onEditDraft,
|
|
@@ -26843,8 +26844,8 @@ var GoalDraftsTab = ({
|
|
|
26843
26844
|
}) => /* @__PURE__ */ jsx119(
|
|
26844
26845
|
ModelsTabBase,
|
|
26845
26846
|
{
|
|
26846
|
-
fetchModels:
|
|
26847
|
-
deleteModel:
|
|
26847
|
+
fetchModels: fetchRecommendedClassDrafts,
|
|
26848
|
+
deleteModel: deleteRecommendedClassDraft,
|
|
26848
26849
|
onCreateModel: onCreateDraft,
|
|
26849
26850
|
onSend: onSendDraft,
|
|
26850
26851
|
onEditModel: onEditDraft,
|
|
@@ -26853,28 +26854,28 @@ var GoalDraftsTab = ({
|
|
|
26853
26854
|
mapSubjectNameToEnum: mapSubjectNameToEnum2,
|
|
26854
26855
|
userFilterData,
|
|
26855
26856
|
subjectsMap,
|
|
26856
|
-
config:
|
|
26857
|
+
config: RECOMMENDED_CLASS_DRAFTS_CONFIG,
|
|
26857
26858
|
createTableColumns: (mapSubject, send, edit, del) => createModelsTableColumnsBase(
|
|
26858
26859
|
mapSubject,
|
|
26859
26860
|
send,
|
|
26860
26861
|
edit,
|
|
26861
26862
|
del,
|
|
26862
|
-
|
|
26863
|
+
RECOMMENDED_CLASS_DRAFTS_COLUMNS_CONFIG
|
|
26863
26864
|
),
|
|
26864
|
-
createFiltersConfig:
|
|
26865
|
-
buildFiltersFromParams:
|
|
26866
|
-
createUseModels:
|
|
26865
|
+
createFiltersConfig: createRecommendedClassDraftsFiltersConfig,
|
|
26866
|
+
buildFiltersFromParams: buildRecommendedClassModelsFiltersFromParams,
|
|
26867
|
+
createUseModels: createUseRecommendedClassDrafts
|
|
26867
26868
|
}
|
|
26868
26869
|
);
|
|
26869
26870
|
|
|
26870
26871
|
// src/components/RecommendedLessonsHistory/RecommendedLessonsHistory.tsx
|
|
26871
26872
|
import { Fragment as Fragment26, jsx as jsx120, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
26872
|
-
var
|
|
26873
|
-
|
|
26874
|
-
|
|
26875
|
-
|
|
26876
|
-
return
|
|
26877
|
-
})(
|
|
26873
|
+
var RecommendedClassPageTab = /* @__PURE__ */ ((RecommendedClassPageTab2) => {
|
|
26874
|
+
RecommendedClassPageTab2["HISTORY"] = "history";
|
|
26875
|
+
RecommendedClassPageTab2["DRAFTS"] = "drafts";
|
|
26876
|
+
RecommendedClassPageTab2["MODELS"] = "models";
|
|
26877
|
+
return RecommendedClassPageTab2;
|
|
26878
|
+
})(RecommendedClassPageTab || {});
|
|
26878
26879
|
var extractFilterValue = (param) => {
|
|
26879
26880
|
if (!Array.isArray(param) || param.length === 0) return {};
|
|
26880
26881
|
return param.length === 1 ? { single: param[0] } : { multiple: param };
|
|
@@ -26935,7 +26936,7 @@ var getClassOptions = (data) => {
|
|
|
26935
26936
|
name: cls.name
|
|
26936
26937
|
}));
|
|
26937
26938
|
};
|
|
26938
|
-
var
|
|
26939
|
+
var createRecommendedClassFiltersConfig = (userData) => [
|
|
26939
26940
|
{
|
|
26940
26941
|
key: "academic",
|
|
26941
26942
|
label: "DADOS ACAD\xCAMICOS",
|
|
@@ -27010,12 +27011,12 @@ var createGoalFiltersConfig = (userData) => [
|
|
|
27010
27011
|
key: "status",
|
|
27011
27012
|
label: "Status",
|
|
27012
27013
|
selectedIds: [],
|
|
27013
|
-
itens:
|
|
27014
|
+
itens: RECOMMENDED_CLASS_FILTER_STATUS_OPTIONS
|
|
27014
27015
|
}
|
|
27015
27016
|
]
|
|
27016
27017
|
}
|
|
27017
27018
|
];
|
|
27018
|
-
var createTableColumns2 = (mapSubjectNameToEnum2,
|
|
27019
|
+
var createTableColumns2 = (mapSubjectNameToEnum2, onDeleteRecommendedClass, onEditRecommendedClass) => [
|
|
27019
27020
|
{
|
|
27020
27021
|
key: "startDate",
|
|
27021
27022
|
label: "In\xEDcio",
|
|
@@ -27096,7 +27097,9 @@ var createTableColumns2 = (mapSubjectNameToEnum2, onDeleteGoal, onEditGoal) => [
|
|
|
27096
27097
|
Badge_default,
|
|
27097
27098
|
{
|
|
27098
27099
|
variant: "solid",
|
|
27099
|
-
action:
|
|
27100
|
+
action: getRecommendedClassStatusBadgeAction(
|
|
27101
|
+
status
|
|
27102
|
+
),
|
|
27100
27103
|
size: "small",
|
|
27101
27104
|
children: status
|
|
27102
27105
|
}
|
|
@@ -27127,11 +27130,11 @@ var createTableColumns2 = (mapSubjectNameToEnum2, onDeleteGoal, onEditGoal) => [
|
|
|
27127
27130
|
render: (_value, row) => {
|
|
27128
27131
|
const handleDelete = (e) => {
|
|
27129
27132
|
e.stopPropagation();
|
|
27130
|
-
|
|
27133
|
+
onDeleteRecommendedClass?.(row.id);
|
|
27131
27134
|
};
|
|
27132
27135
|
const handleEdit = (e) => {
|
|
27133
27136
|
e.stopPropagation();
|
|
27134
|
-
|
|
27137
|
+
onEditRecommendedClass?.(row.id);
|
|
27135
27138
|
};
|
|
27136
27139
|
return /* @__PURE__ */ jsxs94("div", { className: "flex justify-center gap-2", children: [
|
|
27137
27140
|
/* @__PURE__ */ jsx120(
|
|
@@ -27164,11 +27167,11 @@ var createTableColumns2 = (mapSubjectNameToEnum2, onDeleteGoal, onEditGoal) => [
|
|
|
27164
27167
|
}
|
|
27165
27168
|
];
|
|
27166
27169
|
var RecommendedLessonsHistory = ({
|
|
27167
|
-
|
|
27170
|
+
fetchRecommendedClassHistory,
|
|
27168
27171
|
onCreateLesson,
|
|
27169
27172
|
onRowClick,
|
|
27170
|
-
|
|
27171
|
-
|
|
27173
|
+
onDeleteRecommendedClass,
|
|
27174
|
+
onEditRecommendedClass,
|
|
27172
27175
|
emptyStateImage,
|
|
27173
27176
|
noSearchImage,
|
|
27174
27177
|
mapSubjectNameToEnum: mapSubjectNameToEnum2,
|
|
@@ -27176,14 +27179,14 @@ var RecommendedLessonsHistory = ({
|
|
|
27176
27179
|
title = "Hist\xF3rico de aulas recomendadas",
|
|
27177
27180
|
createButtonText = "Criar aula",
|
|
27178
27181
|
searchPlaceholder = "Buscar aula",
|
|
27179
|
-
|
|
27180
|
-
|
|
27182
|
+
fetchRecommendedClassModels,
|
|
27183
|
+
deleteRecommendedClassModel,
|
|
27181
27184
|
onCreateModel,
|
|
27182
27185
|
onSendLesson,
|
|
27183
27186
|
onEditModel,
|
|
27184
27187
|
subjectsMap,
|
|
27185
|
-
|
|
27186
|
-
|
|
27188
|
+
fetchRecommendedClassDrafts,
|
|
27189
|
+
deleteRecommendedClassDraft,
|
|
27187
27190
|
onSendDraft,
|
|
27188
27191
|
onEditDraft,
|
|
27189
27192
|
defaultTab,
|
|
@@ -27205,35 +27208,39 @@ var RecommendedLessonsHistory = ({
|
|
|
27205
27208
|
},
|
|
27206
27209
|
[onTabChange]
|
|
27207
27210
|
);
|
|
27208
|
-
const
|
|
27209
|
-
|
|
27210
|
-
const
|
|
27211
|
+
const fetchRecommendedClassHistoryRef = useRef32(fetchRecommendedClassHistory);
|
|
27212
|
+
fetchRecommendedClassHistoryRef.current = fetchRecommendedClassHistory;
|
|
27213
|
+
const useRecommendedClassHistory = useMemo28(
|
|
27211
27214
|
() => createUseRecommendedLessonsHistory(
|
|
27212
|
-
(filters) =>
|
|
27215
|
+
(filters) => fetchRecommendedClassHistoryRef.current(filters)
|
|
27213
27216
|
),
|
|
27214
27217
|
[]
|
|
27215
27218
|
);
|
|
27216
27219
|
const {
|
|
27217
|
-
|
|
27220
|
+
recommendedClass,
|
|
27218
27221
|
loading,
|
|
27219
27222
|
error,
|
|
27220
27223
|
pagination,
|
|
27221
|
-
|
|
27222
|
-
} =
|
|
27224
|
+
fetchRecommendedClass
|
|
27225
|
+
} = useRecommendedClassHistory();
|
|
27223
27226
|
const initialFilterConfigs = useMemo28(
|
|
27224
|
-
() =>
|
|
27227
|
+
() => createRecommendedClassFiltersConfig(userFilterData),
|
|
27225
27228
|
[userFilterData]
|
|
27226
27229
|
);
|
|
27227
27230
|
const tableColumns = useMemo28(
|
|
27228
|
-
() => createTableColumns2(
|
|
27229
|
-
|
|
27231
|
+
() => createTableColumns2(
|
|
27232
|
+
mapSubjectNameToEnum2,
|
|
27233
|
+
onDeleteRecommendedClass,
|
|
27234
|
+
onEditRecommendedClass
|
|
27235
|
+
),
|
|
27236
|
+
[mapSubjectNameToEnum2, onDeleteRecommendedClass, onEditRecommendedClass]
|
|
27230
27237
|
);
|
|
27231
27238
|
const handleParamsChange = useCallback29(
|
|
27232
27239
|
(params) => {
|
|
27233
27240
|
const filters = buildFiltersFromParams(params);
|
|
27234
|
-
|
|
27241
|
+
fetchRecommendedClass(filters);
|
|
27235
27242
|
},
|
|
27236
|
-
[
|
|
27243
|
+
[fetchRecommendedClass]
|
|
27237
27244
|
);
|
|
27238
27245
|
return /* @__PURE__ */ jsxs94(
|
|
27239
27246
|
"div",
|
|
@@ -27307,7 +27314,7 @@ var RecommendedLessonsHistory = ({
|
|
|
27307
27314
|
activeTab === "history" /* HISTORY */ && /* @__PURE__ */ jsx120(Fragment26, { children: error ? /* @__PURE__ */ jsx120("div", { className: "flex items-center justify-center bg-background rounded-xl w-full min-h-[705px]", children: /* @__PURE__ */ jsx120(Text_default, { size: "lg", color: "text-error-500", children: error }) }) : /* @__PURE__ */ jsx120("div", { className: "w-full", children: /* @__PURE__ */ jsx120(
|
|
27308
27315
|
TableProvider,
|
|
27309
27316
|
{
|
|
27310
|
-
data:
|
|
27317
|
+
data: recommendedClass,
|
|
27311
27318
|
headers: tableColumns,
|
|
27312
27319
|
loading,
|
|
27313
27320
|
variant: "borderless",
|
|
@@ -27374,11 +27381,11 @@ var RecommendedLessonsHistory = ({
|
|
|
27374
27381
|
}
|
|
27375
27382
|
}
|
|
27376
27383
|
) }) }),
|
|
27377
|
-
activeTab === "drafts" /* DRAFTS */ &&
|
|
27378
|
-
|
|
27384
|
+
activeTab === "drafts" /* DRAFTS */ && fetchRecommendedClassDrafts && deleteRecommendedClassDraft && onCreateLesson && /* @__PURE__ */ jsx120(
|
|
27385
|
+
RecommendedClassDraftsTab,
|
|
27379
27386
|
{
|
|
27380
|
-
|
|
27381
|
-
|
|
27387
|
+
fetchRecommendedClassDrafts,
|
|
27388
|
+
deleteRecommendedClassDraft,
|
|
27382
27389
|
onCreateDraft: onCreateLesson,
|
|
27383
27390
|
onSendDraft,
|
|
27384
27391
|
onEditDraft,
|
|
@@ -27389,11 +27396,11 @@ var RecommendedLessonsHistory = ({
|
|
|
27389
27396
|
subjectsMap
|
|
27390
27397
|
}
|
|
27391
27398
|
),
|
|
27392
|
-
activeTab === "models" /* MODELS */ &&
|
|
27393
|
-
|
|
27399
|
+
activeTab === "models" /* MODELS */ && fetchRecommendedClassModels && deleteRecommendedClassModel && onCreateModel && /* @__PURE__ */ jsx120(
|
|
27400
|
+
RecommendedClassModelsTab,
|
|
27394
27401
|
{
|
|
27395
|
-
|
|
27396
|
-
|
|
27402
|
+
fetchRecommendedClassModels,
|
|
27403
|
+
deleteRecommendedClassModel,
|
|
27397
27404
|
onCreateModel,
|
|
27398
27405
|
onSendLesson,
|
|
27399
27406
|
onEditModel,
|
|
@@ -27468,8 +27475,8 @@ var LessonHeader = ({
|
|
|
27468
27475
|
mapSubjectNameToEnum: mapSubjectNameToEnum2,
|
|
27469
27476
|
viewLessonLabel
|
|
27470
27477
|
}) => {
|
|
27471
|
-
const {
|
|
27472
|
-
const subjectName =
|
|
27478
|
+
const { recommendedClass, breakdown } = data;
|
|
27479
|
+
const subjectName = recommendedClass.lessons[0]?.supLessonsProgress?.lesson?.subject?.name || "";
|
|
27473
27480
|
const subjectEnum = mapSubjectNameToEnum2?.(subjectName);
|
|
27474
27481
|
const subjectInfo = subjectEnum ? getSubjectInfo(subjectEnum) : null;
|
|
27475
27482
|
return /* @__PURE__ */ jsx122("div", { className: "bg-background rounded-xl border border-border-50 p-6", children: /* @__PURE__ */ jsxs96("div", { className: "flex flex-col lg:flex-row lg:items-start lg:justify-between gap-4", children: [
|
|
@@ -27481,18 +27488,18 @@ var LessonHeader = ({
|
|
|
27481
27488
|
size: "xl",
|
|
27482
27489
|
weight: "bold",
|
|
27483
27490
|
className: "text-text-950 lg:text-2xl",
|
|
27484
|
-
children:
|
|
27491
|
+
children: recommendedClass.title
|
|
27485
27492
|
}
|
|
27486
27493
|
),
|
|
27487
27494
|
/* @__PURE__ */ jsxs96("div", { className: "flex flex-wrap items-center gap-2 text-sm text-text-600", children: [
|
|
27488
27495
|
/* @__PURE__ */ jsxs96(Text_default, { as: "span", size: "sm", className: "text-text-600", children: [
|
|
27489
27496
|
"In\xEDcio em ",
|
|
27490
|
-
formatDate(
|
|
27497
|
+
formatDate(recommendedClass.startDate)
|
|
27491
27498
|
] }),
|
|
27492
27499
|
/* @__PURE__ */ jsx122(Text_default, { as: "span", size: "sm", className: "text-text-400", children: "\u2022" }),
|
|
27493
27500
|
/* @__PURE__ */ jsxs96(Text_default, { as: "span", size: "sm", className: "text-text-600", children: [
|
|
27494
27501
|
"Prazo final ",
|
|
27495
|
-
formatDate(
|
|
27502
|
+
formatDate(recommendedClass.finalDate)
|
|
27496
27503
|
] }),
|
|
27497
27504
|
breakdown?.schoolName && /* @__PURE__ */ jsxs96(Fragment27, { children: [
|
|
27498
27505
|
/* @__PURE__ */ jsx122(Text_default, { as: "span", size: "sm", className: "text-text-400", children: "\u2022" }),
|
|
@@ -28047,7 +28054,7 @@ var StudentPerformanceModal = ({
|
|
|
28047
28054
|
// src/components/RecommendedLessonDetails/RecommendedLessonDetails.tsx
|
|
28048
28055
|
import { Fragment as Fragment28, jsx as jsx127, jsxs as jsxs101 } from "react/jsx-runtime";
|
|
28049
28056
|
var RecommendedLessonDetails = ({
|
|
28050
|
-
|
|
28057
|
+
recommendedClassId,
|
|
28051
28058
|
data,
|
|
28052
28059
|
loading = false,
|
|
28053
28060
|
error = null,
|
|
@@ -28069,13 +28076,16 @@ var RecommendedLessonDetails = ({
|
|
|
28069
28076
|
const [performanceError, setPerformanceError] = useState51(null);
|
|
28070
28077
|
const handleViewStudentPerformance = useCallback31(
|
|
28071
28078
|
async (studentId) => {
|
|
28072
|
-
if (!fetchStudentPerformance || !
|
|
28079
|
+
if (!fetchStudentPerformance || !recommendedClassId) return;
|
|
28073
28080
|
setPerformanceModalOpen(true);
|
|
28074
28081
|
setPerformanceLoading(true);
|
|
28075
28082
|
setPerformanceData(null);
|
|
28076
28083
|
setPerformanceError(null);
|
|
28077
28084
|
try {
|
|
28078
|
-
const result = await fetchStudentPerformance(
|
|
28085
|
+
const result = await fetchStudentPerformance(
|
|
28086
|
+
recommendedClassId,
|
|
28087
|
+
studentId
|
|
28088
|
+
);
|
|
28079
28089
|
setPerformanceData(result);
|
|
28080
28090
|
} catch (err) {
|
|
28081
28091
|
console.error("Error fetching student performance:", err);
|
|
@@ -28086,7 +28096,7 @@ var RecommendedLessonDetails = ({
|
|
|
28086
28096
|
setPerformanceLoading(false);
|
|
28087
28097
|
}
|
|
28088
28098
|
},
|
|
28089
|
-
[fetchStudentPerformance,
|
|
28099
|
+
[fetchStudentPerformance, recommendedClassId]
|
|
28090
28100
|
);
|
|
28091
28101
|
const handleClosePerformanceModal = useCallback31(() => {
|
|
28092
28102
|
setPerformanceModalOpen(false);
|
|
@@ -28096,18 +28106,18 @@ var RecommendedLessonDetails = ({
|
|
|
28096
28106
|
const defaultBreadcrumbs = useMemo30(
|
|
28097
28107
|
() => [
|
|
28098
28108
|
{ label: "Aulas recomendadas", path: "/aulas-recomendadas" },
|
|
28099
|
-
{ label: data?.
|
|
28109
|
+
{ label: data?.recommendedClass.title || "Detalhes" }
|
|
28100
28110
|
],
|
|
28101
|
-
[data?.
|
|
28111
|
+
[data?.recommendedClass.title]
|
|
28102
28112
|
);
|
|
28103
28113
|
const breadcrumbItems = breadcrumbs || defaultBreadcrumbs;
|
|
28104
28114
|
const displayStudents = useMemo30(() => {
|
|
28105
28115
|
if (!data?.details.students) return [];
|
|
28106
|
-
const deadline = data?.
|
|
28116
|
+
const deadline = data?.recommendedClass.finalDate;
|
|
28107
28117
|
return data.details.students.map(
|
|
28108
28118
|
(student) => transformStudentForDisplay(student, deadline)
|
|
28109
28119
|
);
|
|
28110
|
-
}, [data?.details.students, data?.
|
|
28120
|
+
}, [data?.details.students, data?.recommendedClass.finalDate]);
|
|
28111
28121
|
if (loading) {
|
|
28112
28122
|
return /* @__PURE__ */ jsx127(
|
|
28113
28123
|
"div",
|
|
@@ -28235,7 +28245,7 @@ var createUseRecommendedLessonsPage = (config) => {
|
|
|
28235
28245
|
mapSubjectNameToEnum: mapSubjectNameToEnum2
|
|
28236
28246
|
} = config;
|
|
28237
28247
|
return () => {
|
|
28238
|
-
const
|
|
28248
|
+
const recommendedClassMapRef = useRef33(/* @__PURE__ */ new Map());
|
|
28239
28249
|
const [sendModalOpen, setSendModalOpen] = useState52(false);
|
|
28240
28250
|
const [selectedModel, setSelectedModel] = useState52(null);
|
|
28241
28251
|
const [sendModalLoading, setSendModalLoading] = useState52(false);
|
|
@@ -28254,60 +28264,63 @@ var createUseRecommendedLessonsPage = (config) => {
|
|
|
28254
28264
|
subjects.forEach((s) => map.set(s.id, s.name));
|
|
28255
28265
|
return map;
|
|
28256
28266
|
}, [userData]);
|
|
28257
|
-
const
|
|
28267
|
+
const fetchRecommendedClassHistory = useCallback32(
|
|
28258
28268
|
async (filters) => {
|
|
28259
28269
|
const params = buildQueryParams2(filters);
|
|
28260
28270
|
const response = await api.get(
|
|
28261
|
-
endpoints.
|
|
28271
|
+
endpoints.recommendedClassHistory,
|
|
28262
28272
|
{ params }
|
|
28263
28273
|
);
|
|
28264
|
-
const
|
|
28265
|
-
|
|
28266
|
-
|
|
28274
|
+
const recommendedClass = response.data.data.recommendedClass;
|
|
28275
|
+
recommendedClass.forEach((recommendedClass2) => {
|
|
28276
|
+
recommendedClassMapRef.current.set(
|
|
28277
|
+
recommendedClass2.recommendedClass.id,
|
|
28278
|
+
recommendedClass2
|
|
28279
|
+
);
|
|
28267
28280
|
});
|
|
28268
28281
|
return response.data;
|
|
28269
28282
|
},
|
|
28270
|
-
[api, endpoints.
|
|
28283
|
+
[api, endpoints.recommendedClassHistory]
|
|
28271
28284
|
);
|
|
28272
|
-
const
|
|
28285
|
+
const fetchRecommendedClassModels = useCallback32(
|
|
28273
28286
|
async (filters) => {
|
|
28274
28287
|
const params = buildQueryParams2({
|
|
28275
28288
|
...filters,
|
|
28276
28289
|
type: "MODELO" /* MODELO */
|
|
28277
28290
|
});
|
|
28278
28291
|
const response = await api.get(
|
|
28279
|
-
endpoints.
|
|
28292
|
+
endpoints.recommendedClassDrafts,
|
|
28280
28293
|
{ params }
|
|
28281
28294
|
);
|
|
28282
28295
|
return response.data;
|
|
28283
28296
|
},
|
|
28284
|
-
[api, endpoints.
|
|
28297
|
+
[api, endpoints.recommendedClassDrafts]
|
|
28285
28298
|
);
|
|
28286
|
-
const
|
|
28299
|
+
const deleteRecommendedClassModel = useCallback32(
|
|
28287
28300
|
async (id) => {
|
|
28288
|
-
await api.delete(`${endpoints.
|
|
28301
|
+
await api.delete(`${endpoints.recommendedClassDrafts}/${id}`);
|
|
28289
28302
|
},
|
|
28290
|
-
[api, endpoints.
|
|
28303
|
+
[api, endpoints.recommendedClassDrafts]
|
|
28291
28304
|
);
|
|
28292
|
-
const
|
|
28305
|
+
const fetchRecommendedClassDrafts = useCallback32(
|
|
28293
28306
|
async (filters) => {
|
|
28294
28307
|
const params = buildQueryParams2({
|
|
28295
28308
|
...filters,
|
|
28296
28309
|
type: "RASCUNHO" /* RASCUNHO */
|
|
28297
28310
|
});
|
|
28298
28311
|
const response = await api.get(
|
|
28299
|
-
endpoints.
|
|
28312
|
+
endpoints.recommendedClassDrafts,
|
|
28300
28313
|
{ params }
|
|
28301
28314
|
);
|
|
28302
28315
|
return response.data;
|
|
28303
28316
|
},
|
|
28304
|
-
[api, endpoints.
|
|
28317
|
+
[api, endpoints.recommendedClassDrafts]
|
|
28305
28318
|
);
|
|
28306
|
-
const
|
|
28319
|
+
const deleteRecommendedClassDraft = useCallback32(
|
|
28307
28320
|
async (id) => {
|
|
28308
|
-
await api.delete(`${endpoints.
|
|
28321
|
+
await api.delete(`${endpoints.recommendedClassDrafts}/${id}`);
|
|
28309
28322
|
},
|
|
28310
|
-
[api, endpoints.
|
|
28323
|
+
[api, endpoints.recommendedClassDrafts]
|
|
28311
28324
|
);
|
|
28312
28325
|
const handleCreateLesson = useCallback32(() => {
|
|
28313
28326
|
navigate(paths.createLesson);
|
|
@@ -28316,17 +28329,20 @@ var createUseRecommendedLessonsPage = (config) => {
|
|
|
28316
28329
|
navigate(paths.createModel);
|
|
28317
28330
|
}, []);
|
|
28318
28331
|
const handleRowClick = useCallback32((row) => {
|
|
28319
|
-
const originalData =
|
|
28332
|
+
const originalData = recommendedClassMapRef.current.get(row.id);
|
|
28320
28333
|
navigate(`${paths.lessonDetails}/${row.id}`, {
|
|
28321
|
-
state: {
|
|
28334
|
+
state: { recommendedClassData: originalData }
|
|
28322
28335
|
});
|
|
28323
28336
|
}, []);
|
|
28324
|
-
const
|
|
28337
|
+
const handleEditRecommendedClass = useCallback32((id) => {
|
|
28325
28338
|
navigate(`${paths.editLesson}/${id}/editar`);
|
|
28326
28339
|
}, []);
|
|
28327
|
-
const handleEditModel = useCallback32(
|
|
28328
|
-
|
|
28329
|
-
|
|
28340
|
+
const handleEditModel = useCallback32(
|
|
28341
|
+
(model) => {
|
|
28342
|
+
navigate(`${paths.editModel}${model.id}`);
|
|
28343
|
+
},
|
|
28344
|
+
[]
|
|
28345
|
+
);
|
|
28330
28346
|
const handleSendLesson = useCallback32(
|
|
28331
28347
|
(model) => {
|
|
28332
28348
|
setSelectedModel(model);
|
|
@@ -28355,7 +28371,7 @@ var createUseRecommendedLessonsPage = (config) => {
|
|
|
28355
28371
|
if (!selectedModel) return;
|
|
28356
28372
|
setSendModalLoading(true);
|
|
28357
28373
|
try {
|
|
28358
|
-
await api.post(endpoints.
|
|
28374
|
+
await api.post(endpoints.submitRecommendedClass, {
|
|
28359
28375
|
draftId: selectedModel.id,
|
|
28360
28376
|
students: formData.students,
|
|
28361
28377
|
startDate: `${formData.startDate}T${formData.startTime}:00`,
|
|
@@ -28367,7 +28383,7 @@ var createUseRecommendedLessonsPage = (config) => {
|
|
|
28367
28383
|
setSendModalLoading(false);
|
|
28368
28384
|
}
|
|
28369
28385
|
},
|
|
28370
|
-
[api, endpoints.
|
|
28386
|
+
[api, endpoints.submitRecommendedClass, selectedModel]
|
|
28371
28387
|
);
|
|
28372
28388
|
const handleSendModalClose = useCallback32(() => {
|
|
28373
28389
|
setSendModalOpen(false);
|
|
@@ -28381,17 +28397,17 @@ var createUseRecommendedLessonsPage = (config) => {
|
|
|
28381
28397
|
);
|
|
28382
28398
|
return {
|
|
28383
28399
|
historyProps: {
|
|
28384
|
-
|
|
28385
|
-
|
|
28386
|
-
|
|
28400
|
+
fetchRecommendedClassHistory,
|
|
28401
|
+
fetchRecommendedClassModels,
|
|
28402
|
+
deleteRecommendedClassModel,
|
|
28387
28403
|
onCreateLesson: handleCreateLesson,
|
|
28388
28404
|
onCreateModel: handleCreateModel,
|
|
28389
28405
|
onRowClick: handleRowClick,
|
|
28390
|
-
|
|
28406
|
+
onEditRecommendedClass: handleEditRecommendedClass,
|
|
28391
28407
|
onEditModel: handleEditModel,
|
|
28392
28408
|
onSendLesson: handleSendLesson,
|
|
28393
|
-
|
|
28394
|
-
|
|
28409
|
+
fetchRecommendedClassDrafts,
|
|
28410
|
+
deleteRecommendedClassDraft,
|
|
28395
28411
|
onSendDraft: handleSendLesson,
|
|
28396
28412
|
onEditDraft: handleEditModel,
|
|
28397
28413
|
emptyStateImage,
|
|
@@ -28421,7 +28437,7 @@ var createRecommendedLessonsPageHook = createUseRecommendedLessonsPage;
|
|
|
28421
28437
|
// src/hooks/useRecommendedLessonDetails.ts
|
|
28422
28438
|
import { useState as useState53, useCallback as useCallback33, useEffect as useEffect52 } from "react";
|
|
28423
28439
|
import { z as z7 } from "zod";
|
|
28424
|
-
var
|
|
28440
|
+
var recommendedClassLessonSubjectSchema = z7.object({
|
|
28425
28441
|
id: z7.string(),
|
|
28426
28442
|
name: z7.string(),
|
|
28427
28443
|
color: z7.string(),
|
|
@@ -28431,38 +28447,38 @@ var lessonContentSchema = z7.object({
|
|
|
28431
28447
|
id: z7.string(),
|
|
28432
28448
|
name: z7.string()
|
|
28433
28449
|
});
|
|
28434
|
-
var
|
|
28450
|
+
var recommendedClassLessonSchema = z7.object({
|
|
28435
28451
|
id: z7.string(),
|
|
28436
28452
|
content: lessonContentSchema,
|
|
28437
28453
|
subtopic: lessonContentSchema,
|
|
28438
28454
|
topic: lessonContentSchema,
|
|
28439
|
-
subject:
|
|
28455
|
+
subject: recommendedClassLessonSubjectSchema
|
|
28440
28456
|
});
|
|
28441
|
-
var
|
|
28457
|
+
var recommendedClassLessonProgressSchema = z7.object({
|
|
28442
28458
|
id: z7.string(),
|
|
28443
28459
|
userId: z7.string(),
|
|
28444
28460
|
lessonId: z7.string(),
|
|
28445
28461
|
progress: z7.number(),
|
|
28446
|
-
lesson:
|
|
28462
|
+
lesson: recommendedClassLessonSchema
|
|
28447
28463
|
});
|
|
28448
|
-
var
|
|
28449
|
-
|
|
28464
|
+
var recommendedClassLessonsItemSchema = z7.object({
|
|
28465
|
+
recommendedClassId: z7.string(),
|
|
28450
28466
|
supLessonsProgressId: z7.string(),
|
|
28451
|
-
supLessonsProgress:
|
|
28467
|
+
supLessonsProgress: recommendedClassLessonProgressSchema
|
|
28452
28468
|
});
|
|
28453
|
-
var
|
|
28469
|
+
var recommendedClassMetadataSchema = z7.object({
|
|
28454
28470
|
id: z7.string(),
|
|
28455
28471
|
title: z7.string(),
|
|
28456
28472
|
startDate: z7.string(),
|
|
28457
28473
|
finalDate: z7.string(),
|
|
28458
28474
|
progress: z7.number(),
|
|
28459
|
-
|
|
28475
|
+
lessons: z7.array(recommendedClassLessonsItemSchema)
|
|
28460
28476
|
});
|
|
28461
|
-
var
|
|
28477
|
+
var recommendedClassApiResponseSchema = z7.object({
|
|
28462
28478
|
message: z7.string(),
|
|
28463
|
-
data:
|
|
28479
|
+
data: recommendedClassMetadataSchema
|
|
28464
28480
|
});
|
|
28465
|
-
var
|
|
28481
|
+
var recommendedClassDetailStudentSchema = z7.object({
|
|
28466
28482
|
userInstitutionId: z7.string(),
|
|
28467
28483
|
userId: z7.string(),
|
|
28468
28484
|
name: z7.string(),
|
|
@@ -28471,29 +28487,29 @@ var goalDetailStudentSchema = z7.object({
|
|
|
28471
28487
|
avgScore: z7.number().nullable(),
|
|
28472
28488
|
daysToComplete: z7.number().nullable()
|
|
28473
28489
|
});
|
|
28474
|
-
var
|
|
28490
|
+
var recommendedClassDetailAggregatedSchema = z7.object({
|
|
28475
28491
|
completionPercentage: z7.number(),
|
|
28476
28492
|
avgScore: z7.number().nullable()
|
|
28477
28493
|
});
|
|
28478
|
-
var
|
|
28494
|
+
var recommendedClassDetailContentPerformanceItemSchema = z7.object({
|
|
28479
28495
|
contentId: z7.string(),
|
|
28480
28496
|
contentName: z7.string(),
|
|
28481
28497
|
rate: z7.number()
|
|
28482
28498
|
}).nullable();
|
|
28483
|
-
var
|
|
28484
|
-
best:
|
|
28485
|
-
worst:
|
|
28499
|
+
var recommendedClassDetailContentPerformanceSchema = z7.object({
|
|
28500
|
+
best: recommendedClassDetailContentPerformanceItemSchema,
|
|
28501
|
+
worst: recommendedClassDetailContentPerformanceItemSchema
|
|
28486
28502
|
});
|
|
28487
|
-
var
|
|
28488
|
-
students: z7.array(
|
|
28489
|
-
aggregated:
|
|
28490
|
-
contentPerformance:
|
|
28503
|
+
var recommendedClassDetailsDataSchema = z7.object({
|
|
28504
|
+
students: z7.array(recommendedClassDetailStudentSchema),
|
|
28505
|
+
aggregated: recommendedClassDetailAggregatedSchema,
|
|
28506
|
+
contentPerformance: recommendedClassDetailContentPerformanceSchema
|
|
28491
28507
|
});
|
|
28492
|
-
var
|
|
28508
|
+
var recommendedClassDetailsApiResponseSchema = z7.object({
|
|
28493
28509
|
message: z7.string(),
|
|
28494
|
-
data:
|
|
28510
|
+
data: recommendedClassDetailsDataSchema
|
|
28495
28511
|
});
|
|
28496
|
-
var
|
|
28512
|
+
var recommendedClassBreakdownSchema2 = z7.object({
|
|
28497
28513
|
classId: z7.string().uuid(),
|
|
28498
28514
|
className: z7.string(),
|
|
28499
28515
|
schoolId: z7.string(),
|
|
@@ -28501,14 +28517,14 @@ var goalBreakdownSchema2 = z7.object({
|
|
|
28501
28517
|
studentCount: z7.number(),
|
|
28502
28518
|
completedCount: z7.number()
|
|
28503
28519
|
});
|
|
28504
|
-
var
|
|
28505
|
-
|
|
28506
|
-
breakdown: z7.array(
|
|
28520
|
+
var historyRecommendedClassItemSchema = z7.object({
|
|
28521
|
+
recommendedClass: z7.object({ id: z7.string().uuid() }),
|
|
28522
|
+
breakdown: z7.array(recommendedClassBreakdownSchema2)
|
|
28507
28523
|
});
|
|
28508
28524
|
var historyApiResponseSchema = z7.object({
|
|
28509
28525
|
message: z7.string(),
|
|
28510
28526
|
data: z7.object({
|
|
28511
|
-
|
|
28527
|
+
recommendedClass: z7.array(historyRecommendedClassItemSchema),
|
|
28512
28528
|
total: z7.number()
|
|
28513
28529
|
})
|
|
28514
28530
|
});
|
|
@@ -28539,23 +28555,23 @@ var createUseRecommendedLessonDetails = (apiClient) => {
|
|
|
28539
28555
|
setState((prev) => ({ ...prev, loading: true, error: null }));
|
|
28540
28556
|
try {
|
|
28541
28557
|
const promises = [
|
|
28542
|
-
apiClient.
|
|
28543
|
-
apiClient.
|
|
28558
|
+
apiClient.fetchRecommendedClass(lessonId),
|
|
28559
|
+
apiClient.fetchRecommendedClassDetails(lessonId),
|
|
28544
28560
|
apiClient.fetchBreakdown ? apiClient.fetchBreakdown(lessonId) : Promise.resolve(null)
|
|
28545
28561
|
];
|
|
28546
|
-
const [
|
|
28547
|
-
const
|
|
28548
|
-
const validatedDetails =
|
|
28562
|
+
const [recommendedClassResponse, detailsResponse, historyResponse] = await Promise.all(promises);
|
|
28563
|
+
const validatedRecommendedClass = recommendedClassApiResponseSchema.parse(recommendedClassResponse);
|
|
28564
|
+
const validatedDetails = recommendedClassDetailsApiResponseSchema.parse(detailsResponse);
|
|
28549
28565
|
let breakdown;
|
|
28550
28566
|
if (historyResponse) {
|
|
28551
28567
|
const validatedHistory = historyApiResponseSchema.parse(historyResponse);
|
|
28552
|
-
const historyItem = validatedHistory.data.
|
|
28553
|
-
(g) => g.
|
|
28568
|
+
const historyItem = validatedHistory.data.recommendedClass.find(
|
|
28569
|
+
(g) => g.recommendedClass.id === lessonId
|
|
28554
28570
|
);
|
|
28555
28571
|
breakdown = historyItem?.breakdown[0];
|
|
28556
28572
|
}
|
|
28557
28573
|
const lessonData = {
|
|
28558
|
-
|
|
28574
|
+
recommendedClass: validatedRecommendedClass.data,
|
|
28559
28575
|
details: validatedDetails.data,
|
|
28560
28576
|
breakdown
|
|
28561
28577
|
};
|
|
@@ -30492,9 +30508,9 @@ export {
|
|
|
30492
30508
|
CorrectActivityModal_default as CorrectActivityModal,
|
|
30493
30509
|
CreateActivity,
|
|
30494
30510
|
DEFAULT_ACTIVITIES_PAGINATION,
|
|
30495
|
-
DEFAULT_GOAL_DRAFTS_PAGINATION,
|
|
30496
|
-
DEFAULT_GOAL_MODELS_PAGINATION,
|
|
30497
30511
|
DEFAULT_MODELS_PAGINATION,
|
|
30512
|
+
DEFAULT_RECOMMENDED_CLASS_DRAFTS_PAGINATION,
|
|
30513
|
+
DEFAULT_RECOMMENDED_CLASS_MODELS_PAGINATION,
|
|
30498
30514
|
DIFFICULTY_LEVEL_ENUM,
|
|
30499
30515
|
DateTimeInput_default as DateTimeInput,
|
|
30500
30516
|
Divider_default as Divider,
|
|
@@ -30508,16 +30524,7 @@ export {
|
|
|
30508
30524
|
EmptyState_default as EmptyState,
|
|
30509
30525
|
FileAttachment_default as FileAttachment,
|
|
30510
30526
|
FilterModal,
|
|
30511
|
-
GOAL_ACTIVITY_STATUS,
|
|
30512
|
-
GOAL_FILTER_STATUS_OPTIONS,
|
|
30513
|
-
GOAL_STATUS_OPTIONS,
|
|
30514
30527
|
ActivityStatus2 as GeneralActivityStatus,
|
|
30515
|
-
GenericApiStatus as GoalApiStatus,
|
|
30516
|
-
BadgeActionType as GoalBadgeActionType,
|
|
30517
|
-
GenericDisplayStatus as GoalDisplayStatus,
|
|
30518
|
-
GoalDraftType,
|
|
30519
|
-
GoalDraftsTab,
|
|
30520
|
-
GoalPageTab,
|
|
30521
30528
|
IconButton_default as IconButton,
|
|
30522
30529
|
IconRender_default as IconRender,
|
|
30523
30530
|
IconRoundedButton_default as IconRoundedButton,
|
|
@@ -30577,10 +30584,19 @@ export {
|
|
|
30577
30584
|
QuizResultTitle,
|
|
30578
30585
|
QuizTitle,
|
|
30579
30586
|
QuizTrueOrFalse,
|
|
30587
|
+
RECOMMENDED_CLASS_ACTIVITY_STATUS,
|
|
30588
|
+
RECOMMENDED_CLASS_FILTER_STATUS_OPTIONS,
|
|
30589
|
+
RECOMMENDED_CLASS_STATUS_OPTIONS,
|
|
30580
30590
|
Radio_default as Radio,
|
|
30581
30591
|
RadioGroup,
|
|
30582
30592
|
RadioGroupItem,
|
|
30583
30593
|
RankingCard,
|
|
30594
|
+
GenericApiStatus as RecommendedClassApiStatus,
|
|
30595
|
+
BadgeActionType as RecommendedClassBadgeActionType,
|
|
30596
|
+
GenericDisplayStatus as RecommendedClassDisplayStatus,
|
|
30597
|
+
RecommendedClassDraftType,
|
|
30598
|
+
RecommendedClassDraftsTab,
|
|
30599
|
+
RecommendedClassPageTab,
|
|
30584
30600
|
RecommendedLessonDetails_default as RecommendedLessonDetails,
|
|
30585
30601
|
RecommendedLessonsHistory,
|
|
30586
30602
|
STUDENT_ACTIVITY_STATUS,
|
|
@@ -30640,11 +30656,11 @@ export {
|
|
|
30640
30656
|
createActivitiesHistoryHook,
|
|
30641
30657
|
createActivityFiltersDataHook,
|
|
30642
30658
|
createActivityModelsHook,
|
|
30643
|
-
createGoalDraftsHook,
|
|
30644
|
-
createGoalModelsHook,
|
|
30645
30659
|
createNotificationStore,
|
|
30646
30660
|
createNotificationsHook,
|
|
30647
30661
|
createQuestionsListHook,
|
|
30662
|
+
createRecommendedClassDraftsHook,
|
|
30663
|
+
createRecommendedClassModelsHook,
|
|
30648
30664
|
createRecommendedLessonDetailsHook,
|
|
30649
30665
|
createRecommendedLessonsHistoryHook,
|
|
30650
30666
|
createRecommendedLessonsPageHook,
|
|
@@ -30653,17 +30669,17 @@ export {
|
|
|
30653
30669
|
createUseActivityModels,
|
|
30654
30670
|
createUseChat,
|
|
30655
30671
|
createUseChatRooms,
|
|
30656
|
-
createUseGoalDrafts,
|
|
30657
|
-
createUseGoalModels,
|
|
30658
30672
|
createUseNotificationStore,
|
|
30659
30673
|
createUseNotifications,
|
|
30660
30674
|
createUseQuestionsList,
|
|
30675
|
+
createUseRecommendedClassDrafts,
|
|
30676
|
+
createUseRecommendedClassModels,
|
|
30661
30677
|
createUseRecommendedLessonDetails,
|
|
30662
30678
|
createUseRecommendedLessonsHistory,
|
|
30663
30679
|
createUseRecommendedLessonsPage,
|
|
30664
30680
|
createZustandAuthAdapter,
|
|
30665
30681
|
deriveStudentStatus,
|
|
30666
|
-
|
|
30682
|
+
determineRecommendedClassStatus,
|
|
30667
30683
|
formatDateToBrazilian,
|
|
30668
30684
|
formatDaysToComplete,
|
|
30669
30685
|
formatFileSize,
|
|
@@ -30678,8 +30694,8 @@ export {
|
|
|
30678
30694
|
getChatWsUrl,
|
|
30679
30695
|
getClassOptionsFromUserData,
|
|
30680
30696
|
getDeviceType,
|
|
30681
|
-
getGoalStatusBadgeAction,
|
|
30682
30697
|
getQuestionStatusBadgeConfig,
|
|
30698
|
+
getRecommendedClassStatusBadgeAction,
|
|
30683
30699
|
getRootDomain,
|
|
30684
30700
|
getSchoolOptionsFromUserData,
|
|
30685
30701
|
getSchoolYearOptionsFromUserData,
|
|
@@ -30695,16 +30711,12 @@ export {
|
|
|
30695
30711
|
getSubjectInfo,
|
|
30696
30712
|
getSubjectName,
|
|
30697
30713
|
getSubjectOptionsFromUserData,
|
|
30698
|
-
goalApiResponseSchema,
|
|
30699
|
-
goalDetailsApiResponseSchema,
|
|
30700
|
-
goalModelsApiResponseSchema,
|
|
30701
|
-
goalsHistoryApiResponseSchema,
|
|
30702
30714
|
handleActivityFetchError,
|
|
30703
|
-
handleGoalDraftFetchError,
|
|
30704
|
-
handleGoalFetchError,
|
|
30705
|
-
handleGoalModelFetchError,
|
|
30706
30715
|
handleLessonDetailsFetchError,
|
|
30707
30716
|
handleModelFetchError,
|
|
30717
|
+
handleRecommendedClassDraftFetchError,
|
|
30718
|
+
handleRecommendedClassFetchError,
|
|
30719
|
+
handleRecommendedClassModelFetchError,
|
|
30708
30720
|
historyApiResponseSchema,
|
|
30709
30721
|
isChatUserInfoValid,
|
|
30710
30722
|
isDeadlinePassed,
|
|
@@ -30720,6 +30732,10 @@ export {
|
|
|
30720
30732
|
mapSubjectEnumToName,
|
|
30721
30733
|
mapSubjectNameToEnum,
|
|
30722
30734
|
questionTypeLabels,
|
|
30735
|
+
recommendedClassApiResponseSchema,
|
|
30736
|
+
recommendedClassDetailsApiResponseSchema,
|
|
30737
|
+
recommendedClassHistoryApiResponseSchema,
|
|
30738
|
+
recommendedClassModelsApiResponseSchema,
|
|
30723
30739
|
renderSubjectCell,
|
|
30724
30740
|
studentActivityStatusSchema,
|
|
30725
30741
|
supportSchema,
|
|
@@ -30727,9 +30743,9 @@ export {
|
|
|
30727
30743
|
toggleArrayItem,
|
|
30728
30744
|
toggleSingleValue,
|
|
30729
30745
|
transformActivityToTableItem,
|
|
30730
|
-
transformGoalModelToTableItem,
|
|
30731
|
-
transformGoalToTableItem,
|
|
30732
30746
|
transformModelToTableItem,
|
|
30747
|
+
transformRecommendedClassModelToTableItem,
|
|
30748
|
+
transformRecommendedClassToTableItem,
|
|
30733
30749
|
useActivityDetails,
|
|
30734
30750
|
useAlertFormStore,
|
|
30735
30751
|
useApiConfig,
|