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

// 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
}
},
},
})