PageSourceSearch

https://talleres.deportesanjoaquin.cl/assets/PaginaUsuario-B2P7WSA2.js

js deportesanjoaquin.cl collected 2026-10-09 17:25:40 UTC 21,362 bytes, 1 lines download raw bytes

1import{t as te,c as H,u as ne,j as e,T as I,B as x,aS as B,I as O,ac as ie,aN as X,bD as le,bE as ce,s as G,bz as Y,q as de,a4 as P,y as me,a as D,b as j,e as V,bF as ue,bG as xe,Q as k,V as U,W as $,X as F,Y as z,z as q,D as Q,bH as pe,bI as fe,bJ as he,aG as ge,bK as je,bL as ve,bM as Ne,bN as be,bO as Ce,bP as Ee,bQ as ye,bR as Se}from"./index-DgTlfza0.js";import{i as qe,u as Te,b as i,L as De}from"./vendor-1PmRW4tM.js";import{a as Ve}from"./PaginaAdmin-CKTN9nF2.js";const Oe=he.map(r=>({valor:r,etiqueta:ge[r]})),Z=je.map(r=>({valor:r,etiqueta:ve[r]})),Re=Ce.map(r=>({valor:r,etiqueta:Ee[r]})),Ae=ye.map(r=>({valor:r.codigo,etiqueta:r.nombre})),ee=()=>new Date().toISOString().slice(0,10),Pe=r=>({nombre:r.nombre,fechaNacimiento:r.fechaNacimiento.slice(0,10),parentesco:r.parentesco,genero:r.genero,telefono:r.telefono??"",email:r.email??"",condicionesSalud:r.condicionesSalud??""}),we=({familiar:r,alCerrar:f,alGuardar:y})=>{const[o,g]=i.useState(()=>Pe(r)),[d,p]=i.useState({}),[b,h]=i.useState(!1),l=(s,c)=>g(n=>({...n,[s]:c})),C=async s=>{s.preventDefault();const c=fe.safeParse({nombre:o.nombre.trim(),fechaNacimiento:o.fechaNacimiento,parentesco:o.parentesco,genero:o.genero,telefono:o.telefono.trim()||null,email:o.email.trim()||null,condicionesSalud:o.condicionesSalud.trim()||null});if(!c.success){const n={};for(const m of c.error.issues){const u=m.path.join(".");n[u]||(n[u]=m.message)}p(n),j.error("Revisa los campos marcados.");return}h(!0),p({});try{await D.patch(`/admin/usuarios/familiares/${r.id}`,c.data),j.exito("Carga familiar actualizada",{descripcion:o.nombre}),y()}catch(n){V(n)&&n.codigo==="edad_no_elegible"&&p({fechaNacimiento:n.mensaje}),j.error(V(n)?n.mensaje:"No se pudo guardar.")}finally{h(!1)}};return e.jsx(k,{open:!0,onOpenChange:s=>!s&&f(),children:e.jsxs(U,{className:"max-w-lg",children:[e.jsxs($,{children:[e.jsxs(F,{children:["Editar a ",r.nombre]}),e.jsx(z,{children:"El RUT no se puede cambiar: sus inscripciones dependen de él."})]}),e.jsxs("form",{onSubmit:C,className:"space-y-4",noValidate:!0,children:[e.jsx(q,{etiqueta:"Nombre completo",requerido:!0,value:o.nombre,onChange:s=>l("nombre",s.target.value),error:d.nombre,autoComplete:"off"}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(q,{etiqueta:"RUT",value:Y(r.rut),disabled:!0}
1),e.jsx(q,{etiqueta:"Fecha de nacimiento",requerido:!0,type:"date",max:ee(),value:o.fechaNacimiento,onChange:s=>l("fechaNacimiento",s.target.value),error:d.fechaNacimiento})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(P,{etiqueta:"Parentesco",opciones:Oe,valor:o.parentesco,alCambiar:s=>l("parentesco",s),error:d.parentesco}),e.jsx(P,{etiqueta:"Género",opciones:Z,valor:o.genero,alCambiar:s=>l("genero",s),error:d.genero})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(q,{etiqueta:"Teléfono",type:"tel",value:o.telefono,onChange:s=>l("telefono",s.target.value),error:d.telefono}),e.jsx(q,{etiqueta:"Correo",type:"email",value:o.email,onChange:s=>l("email",s.target.value),error:d.email})]}),e.jsx(Q,{etiqueta:"Condiciones de salud",value:o.condicionesSalud,onChange:s=>l("condicionesSalud",s.target.value),error:d.condicionesSalud,ayuda:"Opcional."}),e.jsxs("div",{className:"flex flex-col-reverse gap-2 border-t border-border pt-4 sm:flex-row sm:justify-end",children:[e.jsx(x,{type:"button",variante:"contorno",onClick:f,children:"Cancelar"}),e.jsx(x,{type:"submit",cargando:b,textoCargando:"Guardando…",children:"Guardar cambios"})]})]})]})})},Ie=({usuario:r,alCerrar:f,alGuardar:y})=>{const[o,g]=i.useState(()=>{var s;return{nombre:r.nombre,fechaNacimiento:((s=r.fechaNacimiento)==null?void 0:s.slice(0,10))??"",genero:r.genero??"",telefono:r.telefono??""}}),[d,p]=i.useState({}),[b,h]=i.useState(!1),l=(s,c)=>g(n=>({...n,[s]:c})),C=async s=>{s.preventDefault();const c=Ne.safeParse({nombre:o.nombre.trim(),telefono:o.telefono.trim()||null,fechaNacimiento:o.fechaNacimiento||null,genero:o.genero||null});if(!c.success){const n={};for(const m of c.error.issues){const u=m.path.join(".");n[u]||(n[u]=m.message)}p(n),j.error("Revisa los campos marcados.");return}h(!0),p({});try{await D.patch(`/admin/usuarios/${r.id}`,c.data),j.exito("Datos actualizados",{descripcion:o.nombre}),y()}catch(n){j.error(V(n)?n.mensaje:"No se pudo guardar.")}finally{h(!1)}};return e.jsx(k,{open:!0,onOpenChange:s=>!s&&f(),children:e.jsxs(U,{className:"max-w-lg",children:[e.jsxs($,{children:[e.jsxs(F,{children:["Editar los datos de ",r.nombre]}),e.jsx(z,{children:"El RUT y el correo se corrigen aparte: son su identidad y su llave de acceso."})]}),e.jsxs("form",{onSubmit:C,className:"space-y-4",noValidate:!0,children:[e.jsx(q,{etiqueta:"Nombre completo",requerido:!0,value:o.nombre,onChange:s=>l("nombre",s.target.value),error:d.nombre,autoComplete:"off"}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(q,{etiqueta:"Fecha de nacimiento",type:"date",max:ee(),value:o.fechaNacimiento,onChange:s=>l("fechaNacimiento",s.target.value),error:d.fechaNacimiento,ayuda:"Decide su tarifa y los rangos de edad."}),e.jsx(P,{etiqueta:"Género",opciones:Z,valor:o.genero||null,alCambiar:s=>l("genero",s),placeholder:"Sin especificar",error:d.genero})]}),e.jsx(q,{etiqueta:"Teléfono",type:"tel",value:o.telefono,onChange:s=>l("telefono",s.target.value),error:d.telefono}),e.jsxs("div",{className:"flex flex-col-reverse gap-2 border-t border-border pt-4 sm:flex-row sm:justify-end",children:[e.jsx(x,{type:"button",variante:"contorno",onClick:f,children:"Cancelar"}),e.jsx(x,{type:"submit",cargando:b,textoCargando:"Guardando…",children:"Guardar cambios"})]})]})]})})},Ge=({usuario:r,alCerrar:f,alGuardar:y})=>{const o=pe(r.rut),[g,d]=i.useState(r.rut?o.tipo:"rut"),[p,b]=i.useState(r.rut?o.numero:""),[h,l]=i.useState(o.tipo==="rut"?null:o.pais??null),[C,s]=i.useState(""),[c,n]=i.useState({}),[m,u]=i.useState(null),[v,T]=i.useState(!1),R=async N=>{N.preventDefault(),u(null);const w=be.safeParse({tipoDocumento:g,paisDocumento:g==="rut"?void 0:h,rut:p.trim(),motivo:C.trim()});if(!w.success){const S={};for(const A of w.error.issues){const a=A.path.join(".");S[a]||(S[a]=A.message)}n(S);return}T(!0),n({});try{await D.patch(`/admin/usuarios/${r.id}/rut`,w.data),j.exito("Documento corregido",{descripcion:r.nombre}),y()}catch(S){u(V(S)?S.mensaje:"No se pudo corregir el documento.")}finally{T(!1)}};return e.jsx(k,{open:!0,onOpenChange:N=>!N&&f(),children:e.jsxs(U,{className:"max-w-lg",children:[e.jsxs($,{children:[e.jsxs(F,{children:["Corregir el documento de ",r.nombre]}),e.jsx(z,{children:"De él dependen su tarifa, su Tarjeta Vecino y las inscripciones que ya pagó."})]}),e.jsxs("form",{onSubmit:R,className:"space-y-4",noValidate:!0,children:[r.rut?e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Ahora tiene ",e.jsx("span",{className:"tabular font-medium",children:X(r.rut)}),"."]}):e.jsx(G,{tono:"aviso",children:"Esta cuenta no tiene documento registrado, así que no puede tener tarifa de vecino ni inscribirse. Al completarlo, las dos cosas quedan disponibles."}),e.jsx(P,{etiqueta:"Tipo de documento",opciones:Re,valor:g,alCambiar:N=>d(N)}),e.jsx(q,{etiqueta:g==="rut"?"RUT":"Número de documento",requerido:!0,value:p,onChange:N=>b(N.target.value),placeholder:g==="rut"?"12.345.678-9":"Como aparece en el documento",ayuda:g==="rut"?"Con o sin puntos, con guion.":"Sin puntos ni espacios.",error:c.rut,autoComplete:"off"}),g==="rut"?null:e.jsx(P,{etiqueta:"País que emitió el documento",opciones:Ae,valor:h,alCambiar:l,placeholder:"Elige el país",ayuda:"Entra en la identificación: dos países pueden emitir el mismo número.",error:c.paisDocumento}),e.jsx(Q,{etiqueta:"Motivo de la corrección",requerido:!0,value:C,onChange:N=>s(N.target.value),ayuda:"Al menos 10 caracteres. Queda registrado con tu nombre.",error:c.motivo}),m?e.jsx(G,{tono:"peligro",children:m}):null,e.jsxs("div",{className:"flex flex-col-reverse gap-2 border-t border-border pt-4 sm:flex-row sm:justify-end",children:[e.jsx(x,{type:"button",variante:"contorno",onClick:f,children:"Cancelar"}),e.jsx(x,{type:"submit",cargando:v,textoCargando:"Guardando…",children:"Corregir el documento"})]})]})]})})},_e=({usuario:r,alCerrar:f,alGuardar:y})=>{const[o,g]=i.useState(""),[d,p]=i.useState(""),[b,h]=i.useState({}),[l,C]=i.useState(null),[s,c]=i.useState(!1),n=async m=>{m.preventDefault(),C(null);const u=Se.safeParse({email:o,motivo:d.trim()});if(!u.success){const v={};for(const T of u.error.issues){const R=T.path.join(".");v[R]||(v[R]=T.message)}h(v);return}if(u.data.email===r.email){h({email:r.emailVerificado?"Es el mismo correo que ya tiene.":"Es el mismo correo que ya tiene. Si lo que falta es confirmarlo, usa «Confirmarlo desde el mostrador»."});return}c(!0),h({});try{await D.patch(`/admin/usuarios/${r.id}/email`,u.data),j.exito("Correo corregido",{descripcion:`${r.nombre} entra ahora con ${u.data.email}`}),y()}catch(v){V(v)&&v.codigo==="email_registrado"?h({email:v.mensaje}):C(V(v)?v.mensaje:"No se pudo corregir el correo.")}finally{c(!1)}};return e.jsx(k,{open:!0,onOpenChange:m=>!m&&f(),children:e.jsxs(U,{className:"max-w-lg",children:[e.jsxs($,{children:[e.jsxs(F,{children:["Corregir el correo de ",r.nombre]}),e.jsx(z,{children:"Es también con lo que entra al portal: desde que lo guardes, iniciará sesión con el correo nuevo y el anterior dejará de servir."})]}),e.jsxs("form",{onSubmit:n,className:"space-y-4",noValidate:!0,children:[e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Ahora tiene ",e.jsx("span",{className:"font-medium break-all text-foreground",children:r.email}),"."]}
1),e.jsx(q,{etiqueta:"Correo nuevo",requerido:!0,type:"email",value:o,onChange:m=>g(m.target.value),error:b.email,autoComplete:"off"}),e.jsx(G,{tono:"info",children:"El correo nuevo queda confirmado a tu nombre: hazlo con la persona delante o tras comprobar su identidad. Su contraseña no cambia y los códigos enviados al correo anterior dejan de valer. No le llega ningún aviso, así que cuéntaselo tú."}),e.jsx(Q,{etiqueta:"Motivo de la corrección",requerido:!0,value:d,onChange:m=>p(m.target.value),ayuda:"Al menos 10 caracteres. Queda registrado con tu nombre.",error:b.motivo}),l?e.jsx(G,{tono:"peligro",children:l}):null,e.jsxs("div",{className:"flex flex-col-reverse gap-2 border-t border-border pt-4 sm:flex-row sm:justify-end",children:[e.jsx(x,{type:"button",variante:"contorno",onClick:f,children:"Cancelar"}),e.jsx(x,{type:"submit",cargando:s,textoCargando:"Guardando…",children:"Corregir el correo"})]})]})]})})},ke={confirmada:"exito",pendiente:"aviso",anulada:"peligro",vencida:"neutro"},Ue={VIGENTE:"exito",EN_REVISION:"info",SIN_SOLICITUD:"neutro",RECHAZADA:"neutro",VENCIDA:"aviso",REVOCADA:"aviso"},$e=ce,J=r=>r&&r.charAt(0).toUpperCase()+r.slice(1),Fe={masculino:"Masculino",femenino:"Femenino",otro:"Otro",prefiero_no_decir:"Prefiere no decir"},_=r=>r?xe(r):"—",W=r=>r?ue(r.slice(0,10)):"—",E=({etiqueta:r,children:f})=>e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("dt",{className:"text-sm text-muted-foreground",children:r}),e.jsx("dd",{className:"font-medium",children:f})]}),Le=()=>{var L;const{id:r}=qe(),f=Te(),y=te(),o=H(t=>D.get(`/admin/usuarios/${r}`,{signal:t}),[r]),d=((L=H(t=>D.get("/admin/usuarios?limite=1",{signal:t}),[]).datos)==null?void 0:L.roles)??[],[p,b]=i.useState(""),[h,l]=i.useState(!1),[C,s]=i.useState(!1),[c,n]=i.useState(!1),[m,u]=i.useState(null),[v,T]=i.useState(!1),[R,N]=i.useState(!1),[w,S]=i.useState(!1),{sesion:A}=ne(),a=o.datos,ae=!!(a&&(!a.esAdmin||A!=null&&A.usuario.esAdmin));i.useEffect(()=>{a&&b(a.rolKey)},[a]);const re=async()=>{if(!(!a||p===a.rolKey)){l(!0);try{await D.patch(`/admin/usuarios/${a.id}/rol`,{rolKey:p}),j.exito("Rol actualizado",{descripcion:a.nombre}),o.recargar()}catch(t){j.error(V(t)?t.mensaje:"No se pudo cambiar el rol."),b(a.rolKey)}finally{l(!1)}}},oe=async()=>{if(!a)return;const t=a.activo;if(await y({titulo:t?`¿Desactivar a ${a.nombre}?`:`¿Reactivar a ${a.nombre}?`,descripcion:t?"No podrá iniciar sesión hasta que se reactive su cuenta.":"Volverá a poder iniciar sesión.",textoConfirmar:t?"Desactivar":"Reactivar",destructivo:t})){s(!0);try{await D.patch(`/admin/usuarios/${a.id}/estado`,{activo:!a.activo}),j.exito(t?"Cuenta desactivada":"Cuenta reactivada",{descripcion:a.nombre}),o.recargar()}catch(K){j.error(V(K)?K.mensaje:"No se pudo cambiar el estado.")}finally{s(!1)}}},se=async()=>{if(!(!a||!await y({titulo:`¿Confirmar el correo de ${a.nombre}?`,descripcion:`Se dará por válido ${a.email} sin que la persona haya usado el código. Hazlo solo si la tienes delante y comprobaste su identidad: a partir de ahí podrá pagar inscripciones y pedir la Tarjeta Vecino.`,textoConfirmar:"Confirmar el correo"}))){n(!0);try{await D.patch(`/admin/usuarios/${a.id}/verificacion-correo`,{motivo:"Confirmado en el mostrador tras verificar la identidad con el carné."}),j.exito("Correo confirmado",{descripcion:a.nombre}),o.recargar()}catch(M){j.error(V(M)?M.mensaje:"No se pudo confirmar el correo.")}finally{n(!1)}}};return e.jsxs(Ve,{titulo:(a==null?void 0:a.nombre)??"Persona",descripcion:a==null?void 0:a.email,migas:[{etiqueta:(a==null?void 0:a.nombre)??"Ficha"}],cargando:o.primeraCarga,error:o.error?{mensaje:o.error.mensaje,esDeRed:o.error.esDeRed}:null,alReintentar:o.recargar,acciones:a?a.activo?e.jsx(O,{tono:"exito",children:"Cuenta activa"}):e.jsx(O,{tono:"neutro",children:"Cuenta inactiva"}):void 0,children:[a?e.jsxs("div",{className:"max-w-3xl space-y-6 pb-8",children:[e.jsxs(I,{className:"p-6",children:[e.jsxs("div",{className:"mb-4 flex flex-wrap items-start justify-between gap-3",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Datos de la persona"}),e.jsxs(x,{variante:"contorno",tamano:"sm",onClick:()=>T(!0),children:[e.jsx(B,{className:"size-4","aria-hidden":"true"}),"Editar datos"]})]}),e.jsxs("dl",{className:"grid gap-x-6 gap-y-4 sm:grid-cols-2",children:[e.jsxs(E,{etiqueta:"Correo",children:[e.jsxs("span",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"break-all",children:a.email}),a.emailVerificado?e.jsx(O,{tono:"exito",children:"Confirmado"}):e.jsx(O,{tono:"aviso",children:"Sin confirmar"}),ae?e.jsxs(x,{variante:"fantasma",tamano:"sm",onClick:()=>S(!0),children:[e.jsx(ie,{"aria-hidden":"true"}),"Corregir"]}):null]}),a.emailVerificado&&a.emailVerificadoPorNombre?e.jsxs("span",{className:"mt-1 block text-sm text-muted-foreground",children:["Confirmado en el mostrador por ",a.emailVerificadoPorNombre]}):null,a.emailVerificado?null:e.jsx(x,{variante:"contorno",tamano:"sm",className:"mt-2",cargando:c,onClick:()=>void se(),children:"Confirmarlo desde el mostrador"})]}),e.jsx(E,{etiqueta:"RUT",children:e.jsxs("span",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"tabular",children:a.rut?X(a.rut):"—"}),e.jsxs(x,{variante:"fantasma",tamano:"sm",onClick:()=>N(!0),children:[e.jsx(le,{"aria-hidden":"true"}
1),a.rut?"Corregir":"Completar"]})]})}),e.jsx(E,{etiqueta:"Teléfono",children:a.telefono??"—"}),e.jsx(E,{etiqueta:"Fecha de nacimiento",children:W(a.fechaNacimiento)}),e.jsx(E,{etiqueta:"Género",children:a.genero?Fe[a.genero]??a.genero:"—"}),e.jsx(E,{etiqueta:"Comuna",children:a.comuna??"—"}),e.jsx(E,{etiqueta:"Dirección",children:a.direccion??"—"}),e.jsx(E,{etiqueta:"Último acceso",children:_(a.ultimoAcceso)}),e.jsx(E,{etiqueta:"Se registró",children:_(a.creadoEn)})]})]}),e.jsxs(I,{className:"p-6",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Tarjeta Vecino"}),e.jsx("p",{className:"mt-0.5 text-sm text-muted-foreground",children:"Determina si paga tarifa vecina o particular."})]}),a.tarjetaVecino?e.jsx(O,{tono:Ue[a.tarjetaVecino.estado],children:$e[a.tarjetaVecino.estado]}):null]}),a.tarjetaVecino?e.jsxs(e.Fragment,{children:[e.jsxs("dl",{className:"mt-4 grid gap-x-6 gap-y-4 sm:grid-cols-2",children:[e.jsx(E,{etiqueta:"Tarifa que se le aplica",children:a.tarjetaVecino.esVecino?"Vecino":"Particular"}),e.jsx(E,{etiqueta:"Vigente hasta",children:_(a.tarjetaVecino.vigenteHasta)})]}),a.tarjetaVecino.diasParaVencer!==null&&a.tarjetaVecino.diasParaVencer<=30?e.jsxs("p",{className:"mt-3 text-sm text-aviso",children:["Vence en ",e.jsx("span",{className:"tabular",children:a.tarjetaVecino.diasParaVencer})," ",a.tarjetaVecino.diasParaVencer===1?"día":"días","."]}):null,a.tarjetaVecino.solicitudId?e.jsx(x,{variante:"contorno",comoHijo:!0,className:"mt-4",children:e.jsx(De,{to:"/admin/tarjeta-vecino",children:"Ver en la cola de revisión"})}):null]}):e.jsx("p",{className:"mt-4 text-sm text-muted-foreground",children:"Esta persona no tiene RUT registrado, así que no puede tener Tarjeta Vecino ni tarifa de vecino."})]}),e.jsxs(I,{className:"p-6",children:[e.jsxs("h2",{className:"mb-1 text-lg font-semibold",children:["Cargas familiares"," ",e.jsxs("span",{className:"tabular font-normal text-muted-foreground",children:["(",a.familiares.length,")"]})]}),e.jsx("p",{className:"mb-4 text-sm text-muted-foreground",children:"Personas a cargo que puede inscribir en talleres."}),a.familiaresExcluidosDeVecino?e.jsx(G,{tono:"aviso",className:"mb-4",children:"Un funcionario le cortó a esta persona la herencia de la Tarjeta Vecino: ninguna de sus cargas familiares paga tarifa vecino, aunque esté vigente. Se cambia desde la revisión de su solicitud."}):null,a.familiares.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"No tiene cargas familiares registradas."}):e.jsx("ul",{className:"divide-y divide-border",children:a.familiares.map(t=>e.jsxs("li",{className:"flex flex-wrap items-start justify-between gap-3 py-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("p",{className:"font-medium",children:t.nombre}),e.jsx(O,{tono:"neutro",children:J(t.parentesco)})]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[e.jsx("span",{className:"tabular",children:Y(t.rut)})," ·"," ",e.jsx("span",{className:"tabular",children:t.edad})," años · ",W(t.fechaNacimiento)]}),t.telefono||t.email?e.jsx("p",{className:"text-sm text-muted-foreground",children:[t.telefono,t.email].filter(Boolean).join(" · ")}):null,t.condicionesSalud?e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:t.condicionesSalud}):null]}),e.jsxs(x,{variante:"contorno",tamano:"sm",onClick:()=>u(t),children:[e.jsx(B,{className:"size-4","aria-hidden":"true"}),"Editar"]})]},t.id))})]}),e.jsxs(I,{className:"p-6",children:[e.jsxs("h2",{className:"mb-1 text-lg font-semibold",children:["Inscripciones"," ",e.jsxs("span",{className:"tabular font-normal text-muted-foreground",children:["(",a.inscripciones.length,")"]})]}),e.jsx("p",{className:"mb-4 text-sm text-muted-foreground",children:"Talleres que ha comprado esta persona."}),a.inscripciones.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"Todavía no tiene inscripciones."}):e.jsx("ul",{className:"divide-y divide-border",children:a.inscripciones.map(t=>e.jsxs("li",{className:"flex flex-wrap items-start justify-between gap-2 py-2.5",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"font-medium",children:t.tallerNombre}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.horarioEtiqueta?`${t.horarioEtiqueta} · `:"",t.personaNombre," · ",_(t.fecha)]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"tabular font-medium",children:de(t.montoPagado)}),e.jsx(O,{tono:ke[t.estado]??"neutro",children:J(t.estado)})]})]},t.id))})]}),e.jsxs(I,{className:"p-6",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Acceso y rol"}),e.jsx("p",{className:"mt-0.5 text-sm text-muted-foreground",children:"El rol define qué puede ver y hacer esta persona en el panel."}),e.jsxs("div",{className:"mt-4 flex flex-col gap-3 sm:flex-row sm:items-end",children:[e.jsx(P,{etiqueta:"Rol",contenedorClassName:"sm:w-72",opciones:d.map(t=>({valor:t.key,etiqueta:t.nombre})),valor:p||null,alCambiar:b}),e.jsx(x,{onClick:()=>void re(),disabled:p===a.rolKey,cargando:h,textoCargando:"Guardando…",children:"Cambiar rol"})]}),e.jsx(me,{className:"my-6"}),e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:a.activo?"Cuenta activa":"Cuenta desactivada"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a.activo?"Puede iniciar sesión y usar la plataforma.":"No puede iniciar sesión hasta reactivarla."})]}),e.jsx(x,{variante:a.activo?"destructivo":"primario",onClick:()=>void oe(),cargando:C,children:a.activo?"Desactivar cuenta":"Reactivar cuenta"})]})]}),e.jsx(x,{variante:"contorno",onClick:()=>f("/admin/usuarios"),children:"Volver a la lista"})]}):null,m?e.jsx(we,{familiar:m,alCerrar:()=>u(null),alGuardar:()=>{u(null),o.recargar()}}):null,v&&a?e.jsx(Ie,{usuario:a,alCerrar:()=>T(!1),alGuardar:()=>{T(!1),o.recargar()}}):null,R&&a?e.jsx(Ge,{usuario:a,alCerrar:()=>N(!1),alGuardar:()=>{N(!1),o.recargar()}}):null,w&&a?e.jsx(_e,{usuario:a,alCerrar:()=>S(!1),alGuardar:()=>{S(!1),o.recargar()}}):null]})};export{Le as PaginaUsuario};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.