analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
145 lines (136 loc) • 5.52 kB
JavaScript
;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