You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
// src/store/web.js
|
|
import { defineStore } from "pinia"
|
|
import api from "../axiosPostulante"
|
|
|
|
export const useWebAdmisionStore = defineStore("procesoAdmision", {
|
|
state: () => ({
|
|
procesos: [],
|
|
loading: false,
|
|
error: null,
|
|
}),
|
|
|
|
getters: {
|
|
// Si hay uno VIGENTE, úsalo como principal; si no, usa el primero.
|
|
procesoPrincipal: (state) => {
|
|
if (!state.procesos?.length) return null
|
|
return state.procesos.find((p) => p.estado === "publicado") ?? state.procesos[0]
|
|
},
|
|
|
|
// Por si lo necesitas después
|
|
ultimoProceso: (state) => {
|
|
return state.procesos?.length ? state.procesos[0] : null
|
|
},
|
|
},
|
|
|
|
actions: {
|
|
async cargarProcesos() {
|
|
this.loading = true
|
|
this.error = null
|
|
|
|
try {
|
|
const response = await api.get("/procesos-admision")
|
|
this.procesos = response.data?.data ?? response.data ?? []
|
|
} catch (err) {
|
|
this.error = err.response?.data?.message || "Error al cargar procesos"
|
|
console.error(err)
|
|
} finally {
|
|
this.loading = false
|
|
}
|
|
},
|
|
},
|
|
})
|