UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

175 lines (161 loc) 7.31 kB
"use strict";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