@@ -17,6 +17,21 @@ for (const key in categories) {
1717
1818<BaseLayout title =" Editar Empleo | CuCoders" description =" Edita tu oferta de empleo en CuCoders." >
1919 <div class =" lg:max-w-[58rem] mx-auto w-full md:mt-12" >
20+ <div
21+ id =" loading-container"
22+ class =" fixed inset-0 z-50 flex flex-col items-center justify-center bg-white bg-opacity-80 dark:bg-gray-900 dark:bg-opacity-80"
23+ >
24+ <div
25+ class =" inline-block h-12 w-12 animate-spin rounded-full border-4 border-solid border-gray-800 border-r-transparent align-[-0.125em] motion-reduce:animate-[spin_1.5s_linear_infinite] dark:border-white dark:border-r-transparent"
26+ role =" status"
27+ >
28+ <span class =" !absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]"
29+ >Cargando...</span
30+ >
31+ </div >
32+ <p class =" mt-4 text-lg font-medium text-gray-900 dark:text-white" >Cargando datos del empleo...</p >
33+ </div >
34+
2035 <form
2136 id =" job-form"
2237 class =" bg-white border md:mx-auto mb-5 p-8 lg:max-w-[58rem] border-gray-200 rounded-lg dark:bg-gray-800 dark:border-gray-700 w-full"
@@ -120,6 +135,7 @@ for (const key in categories) {
120135
121136 const urlParams = new URLSearchParams(window.location.search);
122137 const jobId = urlParams.get("id");
138+ const loadingContainer = document.getElementById("loading-container");
123139 const jobForm = document.getElementById("job-form");
124140 const deleteJobBtn = document.getElementById("deleteJobBtn");
125141
@@ -128,7 +144,10 @@ for (const key in categories) {
128144
129145 // Load Job Logic
130146 window.addEventListener("load", async () => {
131- if (!jobId) return;
147+ if (!jobId) {
148+ if (loadingContainer) loadingContainer.classList.add("hidden");
149+ return;
150+ }
132151 try {
133152 const response = await fetch(`${backend_url}api/jobs/get-job?id=${jobId}`);
134153 if (!response.ok) throw new Error("Failed to load job");
@@ -137,6 +156,8 @@ for (const key in categories) {
137156 } catch (e) {
138157 showToast("Error cargando la información del empleo.", true);
139158 console.error(e);
159+ } finally {
160+ if (loadingContainer) loadingContainer.classList.add("hidden");
140161 }
141162 });
142163
0 commit comments