UNPKG

analytica-frontend-lib

Version:

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

145 lines (136 loc) 5.52 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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 _chunkAVDZHON5js = require('./chunk-AVDZHON5.js'); // src/components/SendActivityModal/hooks/useSendActivityModal.ts var _zustand = require('zustand'); // src/utils/extractStudentsFromCategories.ts function extractStudentsFromCategories(categories) { const studentsCategory = categories.find((cat) => cat.key === "students"); if (!_optionalChain([studentsCategory, 'optionalAccess', _ => _.selectedIds]) || !studentsCategory.itens) { return []; } return studentsCategory.selectedIds.map((id) => { const student = _optionalChain([studentsCategory, 'access', _2 => _2.itens, 'optionalAccess', _3 => _3.find, 'call', _4 => _4((item) => item.id === id)]); if (student) { const rawUserInstId = student.userInstitutionId; const rawInstId = student.institutionId; const rawStudentId = student.studentId; let userInstitutionId = ""; if (typeof rawUserInstId === "string" || typeof rawUserInstId === "number") { userInstitutionId = String(rawUserInstId); } else if (typeof rawInstId === "string" || typeof rawInstId === "number") { userInstitutionId = String(rawInstId); } let studentId; if (typeof rawStudentId === "string" || typeof rawStudentId === "number") { studentId = String(rawStudentId); } else { studentId = String(student.id); } if (!userInstitutionId) { return null; } return { studentId, userInstitutionId }; } return null; }).filter((s) => s !== null); } // src/components/SendActivityModal/hooks/useSendActivityModal.ts var initialState = { formData: { canRetry: false, startTime: "00:00", finalTime: "23:59" }, currentStep: 1, completedSteps: [], errors: {}, categories: [] }; var useSendActivityModalStore = _zustand.create.call(void 0, (set, get) => ({ ...initialState, setFormData: (data) => { set((state) => ({ formData: { ...state.formData, ...data } })); }, goToStep: (step) => { if (step >= 1 && step <= 3) { set({ currentStep: step, errors: {} }); } }, nextStep: (enableExamMode) => { const state = get(); const isValid = state.validateCurrentStep(enableExamMode); if (isValid && state.currentStep < 3) { set((prev) => ({ currentStep: prev.currentStep + 1, completedSteps: prev.completedSteps.includes(prev.currentStep) ? prev.completedSteps : [...prev.completedSteps, prev.currentStep], errors: {} })); return true; } return isValid; }, previousStep: () => { const state = get(); if (state.currentStep > 1) { set({ currentStep: state.currentStep - 1, errors: {} }); } }, setErrors: (errors) => { set({ errors }); }, validateCurrentStep: (enableExamMode) => { const state = get(); let formDataToValidate = state.formData; let updatedFormData = state.formData; if (state.currentStep === 2 && state.categories.length > 0) { const students = extractStudentsFromCategories(state.categories); formDataToValidate = { ...state.formData, students }; updatedFormData = formDataToValidate; } const options = { enableExamMode }; const errors = _chunkAVDZHON5js.validateStep.call(void 0, state.currentStep, formDataToValidate, options ); set({ formData: updatedFormData, errors }); return Object.keys(errors).length === 0; }, validateAllSteps: (enableExamMode) => { const state = get(); let formDataForStep2 = state.formData; if (state.categories.length > 0) { const students = extractStudentsFromCategories(state.categories); formDataForStep2 = { ...state.formData, students }; } const options = { enableExamMode }; const errors1 = _chunkAVDZHON5js.validateStep.call(void 0, 1, state.formData, options); const errors2 = _chunkAVDZHON5js.validateStep.call(void 0, 2, formDataForStep2); const errors3 = _chunkAVDZHON5js.validateStep.call(void 0, 3, state.formData, options); const allErrors = { ...errors1, ...errors2, ...errors3 }; set({ errors: allErrors }); return Object.keys(allErrors).length === 0; }, setCategories: (categories) => { const students = extractStudentsFromCategories(categories); set((state) => ({ categories, formData: { ...state.formData, students } })); }, reset: () => { set({ ...initialState, categories: [] }); } }) ); function useSendActivityModal() { return useSendActivityModalStore(); } exports.extractStudentsFromCategories = extractStudentsFromCategories; exports.useSendActivityModalStore = useSendActivityModalStore; exports.useSendActivityModal = useSendActivityModal; //# sourceMappingURL=chunk-ZRTTIUKJ.js.map