analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
175 lines (161 loc) • 7.31 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
var _chunkJLOAEKEJjs = require('./chunk-JLOAEKEJ.js');
var _chunkB27BOQ2Ejs = require('./chunk-B27BOQ2E.js');
// src/hooks/useActivitiesHistory.ts
var _react = require('react');
var _dayjs = require('dayjs'); var _dayjs2 = _interopRequireDefault(_dayjs);
var DEFAULT_ACTIVITIES_PAGINATION = {
total: 0,
page: 1,
limit: 10,
totalPages: 0
};
var DEFAULT_ACTIVITY_FILTER_OPTIONS = {
schools: [],
classes: [],
subjects: [],
schoolYears: []
};
var transformActivityToTableItem = (activity) => {
const firstBreakdown = _optionalChain([activity, 'access', _ => _.breakdown, 'optionalAccess', _2 => _2[0]]);
return {
id: activity.id,
startDate: activity.startDate ? _dayjs2.default.call(void 0, activity.startDate).format("DD/MM") : "-",
deadline: activity.finalDate ? _dayjs2.default.call(void 0, activity.finalDate).format("DD/MM") : "-",
creator: _optionalChain([activity, 'access', _3 => _3.creator, 'optionalAccess', _4 => _4.name, 'optionalAccess', _5 => _5.trim, 'call', _6 => _6()]) ? activity.creator.name : "-",
creatorId: _nullishCoalesce(_optionalChain([activity, 'access', _7 => _7.creator, 'optionalAccess', _8 => _8.id]), () => ( null)),
title: activity.title,
school: _nullishCoalesce(_optionalChain([firstBreakdown, 'optionalAccess', _9 => _9.school, 'optionalAccess', _10 => _10.name]), () => ( "-")),
year: _nullishCoalesce(_optionalChain([firstBreakdown, 'optionalAccess', _11 => _11.schoolYear, 'optionalAccess', _12 => _12.name]), () => ( "-")),
subject: _nullishCoalesce(_optionalChain([activity, 'access', _13 => _13.subject, 'optionalAccess', _14 => _14.name]), () => ( "-")),
class: _nullishCoalesce(_optionalChain([firstBreakdown, 'optionalAccess', _15 => _15.class, 'optionalAccess', _16 => _16.name]), () => ( "-")),
status: _chunkB27BOQ2Ejs.mapApiStatusToDisplay.call(void 0, activity.status),
completionPercentage: activity.completionPercentage
};
};
var extractActivityFilterOptions = (activities) => _chunkJLOAEKEJjs.extractBreakdownFilterOptions.call(void 0, activities);
var toCsv = (value) => {
if (Array.isArray(value) && value.length > 0) {
return value.map(String).join(",");
}
return void 0;
};
var toSingle = (value) => {
if (Array.isArray(value)) {
return value.length > 0 ? String(value[0]) : void 0;
}
if (typeof value === "string" && value.length > 0) {
return value;
}
return void 0;
};
var assignIf = (params, key, value) => {
if (value) {
params[key] = value;
}
};
var PASSTHROUGH_KEYS = [
"page",
"limit",
"search",
"startDate",
"finalDate",
"sortBy",
"sortOrder"
];
var buildActivityHistoryQueryParams = (filters, activityCategory) => {
const params = {};
assignIf(params, "type", activityCategory);
if (!filters) {
return params;
}
for (const key of PASSTHROUGH_KEYS) {
const value = filters[key];
if (value !== void 0 && value !== null && value !== "") {
params[key] = value;
}
}
assignIf(params, "schoolIds", toCsv(filters.school));
assignIf(params, "classIds", toCsv(filters.class));
assignIf(params, "schoolYearIds", toCsv(filters.schoolYear));
if (!params.schoolIds) {
assignIf(params, "schoolId", toSingle(filters.schoolId));
}
if (!params.classIds) {
assignIf(params, "classId", toSingle(filters.classId));
}
assignIf(params, "status", toSingle(filters.status));
assignIf(
params,
"subjectId",
_nullishCoalesce(toSingle(filters.subject), () => ( toSingle(filters.subjectId)))
);
assignIf(params, "creatorType", toSingle(filters.creatorType));
return params;
};
var useActivitiesHistoryImpl = (apiClient, options) => {
const [state, setState] = _react.useState.call(void 0, {
activities: [],
loading: false,
error: null,
pagination: DEFAULT_ACTIVITIES_PAGINATION,
apiFilterOptions: DEFAULT_ACTIVITY_FILTER_OPTIONS
});
const fetchActivities = _react.useCallback.call(void 0,
async (filters) => {
setState((prev) => ({ ...prev, loading: true, error: null }));
try {
const params = buildActivityHistoryQueryParams(
filters,
_optionalChain([options, 'optionalAccess', _17 => _17.activityCategory])
);
const response = await apiClient.get(
"/activities/history",
{ params }
);
const { data } = response.data;
const tableItems = data.activities.map(transformActivityToTableItem);
const extracted = extractActivityFilterOptions(data.activities);
setState((prev) => ({
activities: tableItems,
loading: false,
error: null,
pagination: data.pagination,
apiFilterOptions: {
schools: _chunkJLOAEKEJjs.mergeFilterOptions.call(void 0,
prev.apiFilterOptions.schools,
extracted.schools
),
classes: _chunkJLOAEKEJjs.mergeFilterOptions.call(void 0,
prev.apiFilterOptions.classes,
extracted.classes
),
subjects: _chunkJLOAEKEJjs.mergeFilterOptions.call(void 0,
prev.apiFilterOptions.subjects,
extracted.subjects
),
schoolYears: _chunkJLOAEKEJjs.mergeFilterOptions.call(void 0,
prev.apiFilterOptions.schoolYears,
extracted.schoolYears
)
}
}));
} catch (error) {
console.error("Erro ao carregar hist\xF3rico:", error);
setState((prev) => ({
...prev,
loading: false,
error: "Erro ao carregar hist\xF3rico de atividades"
}));
}
},
[apiClient, _optionalChain([options, 'optionalAccess', _18 => _18.activityCategory])]
);
return { ...state, fetchActivities };
};
var createUseActivitiesHistory = (apiClient, options) => {
return () => useActivitiesHistoryImpl(apiClient, options);
};
var createActivitiesHistoryHook = createUseActivitiesHistory;
exports.DEFAULT_ACTIVITIES_PAGINATION = DEFAULT_ACTIVITIES_PAGINATION; exports.DEFAULT_ACTIVITY_FILTER_OPTIONS = DEFAULT_ACTIVITY_FILTER_OPTIONS; exports.transformActivityToTableItem = transformActivityToTableItem; exports.extractActivityFilterOptions = extractActivityFilterOptions; exports.buildActivityHistoryQueryParams = buildActivityHistoryQueryParams; exports.createUseActivitiesHistory = createUseActivitiesHistory; exports.createActivitiesHistoryHook = createActivitiesHistoryHook;
//# sourceMappingURL=chunk-CG7GWF5E.js.map