analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
181 lines (176 loc) • 6.91 kB
JavaScript
;
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/hooks/useActivitiesHistory.ts
var useActivitiesHistory_exports = {};
__export(useActivitiesHistory_exports, {
DEFAULT_ACTIVITIES_PAGINATION: () => DEFAULT_ACTIVITIES_PAGINATION,
activitiesHistoryApiResponseSchema: () => activitiesHistoryApiResponseSchema,
createActivitiesHistoryHook: () => createActivitiesHistoryHook,
createUseActivitiesHistory: () => createUseActivitiesHistory,
handleActivityFetchError: () => handleActivityFetchError,
transformActivityToTableItem: () => transformActivityToTableItem
});
module.exports = __toCommonJS(useActivitiesHistory_exports);
var import_react = require("react");
var import_zod2 = require("zod");
var import_dayjs = __toESM(require("dayjs"));
// src/types/common.ts
var GenericApiStatus = /* @__PURE__ */ ((GenericApiStatus2) => {
GenericApiStatus2["A_VENCER"] = "A_VENCER";
GenericApiStatus2["VENCIDA"] = "VENCIDA";
GenericApiStatus2["CONCLUIDA"] = "CONCLUIDA";
return GenericApiStatus2;
})(GenericApiStatus || {});
var mapApiStatusToDisplay = (apiStatus) => {
const statusMap = {
["A_VENCER" /* A_VENCER */]: "ATIVA" /* ATIVA */,
["VENCIDA" /* VENCIDA */]: "VENCIDA" /* VENCIDA */,
["CONCLUIDA" /* CONCLUIDA */]: "CONCLU\xCDDA" /* CONCLUIDA */
};
return statusMap[apiStatus];
};
// src/types/activitiesHistory.ts
var ACTIVITY_FILTER_STATUS_OPTIONS = [
{ id: "A_VENCER" /* A_VENCER */, name: "A Vencer" },
{ id: "VENCIDA" /* VENCIDA */, name: "Vencida" },
{ id: "CONCLUIDA" /* CONCLUIDA */, name: "Conclu\xEDda" }
];
var mapActivityStatusToDisplay = (apiStatus) => mapApiStatusToDisplay(apiStatus);
// src/utils/hookErrorHandler.ts
var import_zod = require("zod");
var createFetchErrorHandler = (validationErrorMessage, genericErrorMessage) => (error) => {
if (error instanceof import_zod.z.ZodError) {
console.error(validationErrorMessage, error);
return validationErrorMessage;
}
console.error(genericErrorMessage, error);
return genericErrorMessage;
};
// src/hooks/useActivitiesHistory.ts
var activityHistoryResponseSchema = import_zod2.z.object({
id: import_zod2.z.string().uuid(),
title: import_zod2.z.string(),
startDate: import_zod2.z.string().nullable(),
finalDate: import_zod2.z.string().nullable(),
status: import_zod2.z.nativeEnum(GenericApiStatus),
completionPercentage: import_zod2.z.number().min(0).max(100),
subjectId: import_zod2.z.string().uuid().optional().nullable(),
schoolId: import_zod2.z.string().optional(),
schoolName: import_zod2.z.string().optional(),
year: import_zod2.z.string().optional(),
className: import_zod2.z.string().optional(),
subjectName: import_zod2.z.string().optional()
});
var activitiesHistoryApiResponseSchema = import_zod2.z.object({
message: import_zod2.z.string(),
data: import_zod2.z.object({
activities: import_zod2.z.array(activityHistoryResponseSchema),
pagination: import_zod2.z.object({
total: import_zod2.z.number(),
page: import_zod2.z.number(),
limit: import_zod2.z.number(),
totalPages: import_zod2.z.number()
})
})
});
var DEFAULT_ACTIVITIES_PAGINATION = {
total: 0,
page: 1,
limit: 10,
totalPages: 0
};
var transformActivityToTableItem = (activity) => {
return {
id: activity.id,
startDate: activity.startDate ? (0, import_dayjs.default)(activity.startDate).format("DD/MM") : "-",
deadline: activity.finalDate ? (0, import_dayjs.default)(activity.finalDate).format("DD/MM") : "-",
title: activity.title,
school: activity.schoolName || "-",
year: activity.year || "-",
subject: activity.subjectName || "-",
class: activity.className || "-",
status: mapActivityStatusToDisplay(activity.status),
completionPercentage: activity.completionPercentage
};
};
var handleActivityFetchError = createFetchErrorHandler(
"Erro ao validar dados de hist\xF3rico de atividades",
"Erro ao carregar hist\xF3rico de atividades"
);
var createUseActivitiesHistory = (fetchActivitiesHistory) => {
return () => {
const [state, setState] = (0, import_react.useState)({
activities: [],
loading: false,
error: null,
pagination: DEFAULT_ACTIVITIES_PAGINATION
});
const fetchActivities = (0, import_react.useCallback)(
async (filters) => {
setState((prev) => ({ ...prev, loading: true, error: null }));
try {
const responseData = await fetchActivitiesHistory(filters);
const validatedData = activitiesHistoryApiResponseSchema.parse(responseData);
const tableItems = validatedData.data.activities.map(
transformActivityToTableItem
);
setState({
activities: tableItems,
loading: false,
error: null,
pagination: validatedData.data.pagination
});
} catch (error) {
const errorMessage = handleActivityFetchError(error);
setState((prev) => ({
...prev,
loading: false,
error: errorMessage
}));
}
},
[fetchActivitiesHistory]
);
return {
...state,
fetchActivities
};
};
};
var createActivitiesHistoryHook = createUseActivitiesHistory;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
DEFAULT_ACTIVITIES_PAGINATION,
activitiesHistoryApiResponseSchema,
createActivitiesHistoryHook,
createUseActivitiesHistory,
handleActivityFetchError,
transformActivityToTableItem
});
//# sourceMappingURL=index.js.map