2 lines
5.8 KiB
JavaScript
2 lines
5.8 KiB
JavaScript
import{j as _,r as i,g as S,c as p,a as s,b as v,u as c,k as V,h as y,l as u,v as d,d as w,t as g,m as M,o as m}from"#entry";import{u as U}from"./C_U-NUAd.js";import{L as h}from"./CUq_0rkE.js";import{A}from"./C8kQt0fa.js";import{C as B}from"./DaSgy0Cl.js";const C={class:"min-h-full py-16 bg-gray-50"},D={class:"max-w-3xl mx-auto px-4 sm:px-6 lg:px-8"},N={class:"bg-white rounded-xl shadow-lg p-8 border border-gray-100"},T={key:0,class:"flex items-center justify-center py-12"},z=["disabled"],L=["disabled"],j=["disabled"],q={class:"border-t border-gray-200 pt-6 mt-6"},E={class:"space-y-4"},F=["disabled"],H=["disabled"],Z=["disabled"],$={key:0,class:"flex items-center p-3 rounded-md bg-red-50 text-red-700 text-sm"},I={key:1,class:"flex items-center p-3 rounded-md bg-green-50 text-green-700 text-sm"},G={class:"flex justify-end space-x-4"},J=["disabled"],K=["disabled"],ee={__name:"profil",setup(O){const P=_(),b=i(!0),l=i(!1),o=i(""),f=i(""),t=i({name:"",email:"",phone:""}),r=i({current:"",new:"",confirm:""}),x=async()=>{b.value=!0,o.value="",f.value="";try{const n=await $fetch("/api/profile");t.value={name:n.user.name,email:n.user.email,phone:n.user.phone||""}}catch{o.value="Fehler beim Laden des Profils."}finally{b.value=!1}},k=async()=>{if(l.value=!0,o.value="",f.value="",r.value.current||r.value.new||r.value.confirm){if(!r.value.current){o.value="Bitte geben Sie Ihr aktuelles Passwort ein.",l.value=!1;return}if(!r.value.new){o.value="Bitte geben Sie ein neues Passwort ein.",l.value=!1;return}if(r.value.new!==r.value.confirm){o.value="Die neuen Passwörter stimmen nicht überein.",l.value=!1;return}if(r.value.new.length<6){o.value="Das neue Passwort muss mindestens 6 Zeichen lang sein.",l.value=!1;return}}try{await $fetch("/api/profile",{method:"PUT",body:{name:t.value.name,email:t.value.email,phone:t.value.phone,currentPassword:r.value.current||void 0,newPassword:r.value.new||void 0}}),f.value="Profil erfolgreich aktualisiert!",r.value={current:"",new:"",confirm:""},await P.checkAuth(),window.scrollTo({top:0,behavior:"smooth"})}catch(n){o.value=n.data?.message||"Fehler beim Speichern des Profils."}finally{l.value=!1}};return S(()=>{x()}),U({title:"Mein Profil - Harheimer TC"}),(n,e)=>(m(),p("div",C,[s("div",D,[e[13]||(e[13]=s("h1",{class:"text-4xl sm:text-5xl font-display font-bold text-gray-900 mb-6"}," Mein Profil ",-1)),e[14]||(e[14]=s("div",{class:"w-24 h-1 bg-primary-600 mb-8"},null,-1)),s("div",N,[b.value?(m(),p("div",T,[v(c(h),{size:40,class:"animate-spin text-primary-600"})])):(m(),p("form",{key:1,onSubmit:V(k,["prevent"]),class:"space-y-6"},[s("div",null,[e[6]||(e[6]=s("label",{for:"name",class:"block text-sm font-medium text-gray-700 mb-2"}," Name ",-1)),u(s("input",{id:"name","onUpdate:modelValue":e[0]||(e[0]=a=>t.value.name=a),type:"text",required:"",class:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",disabled:l.value},null,8,z),[[d,t.value.name]])]),s("div",null,[e[7]||(e[7]=s("label",{for:"email",class:"block text-sm font-medium text-gray-700 mb-2"}," E-Mail-Adresse ",-1)),u(s("input",{id:"email","onUpdate:modelValue":e[1]||(e[1]=a=>t.value.email=a),type:"email",required:"",class:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",disabled:l.value},null,8,L),[[d,t.value.email]])]),s("div",null,[e[8]||(e[8]=s("label",{for:"phone",class:"block text-sm font-medium text-gray-700 mb-2"}," Telefonnummer ",-1)),u(s("input",{id:"phone","onUpdate:modelValue":e[2]||(e[2]=a=>t.value.phone=a),type:"tel",class:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",disabled:l.value},null,8,j),[[d,t.value.phone]])]),s("div",q,[e[12]||(e[12]=s("h3",{class:"text-lg font-semibold text-gray-900 mb-4"},"Passwort ändern",-1)),s("div",E,[s("div",null,[e[9]||(e[9]=s("label",{for:"currentPassword",class:"block text-sm font-medium text-gray-700 mb-2"}," Aktuelles Passwort ",-1)),u(s("input",{id:"currentPassword","onUpdate:modelValue":e[3]||(e[3]=a=>r.value.current=a),type:"password",class:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",disabled:l.value},null,8,F),[[d,r.value.current]])]),s("div",null,[e[10]||(e[10]=s("label",{for:"newPassword",class:"block text-sm font-medium text-gray-700 mb-2"}," Neues Passwort ",-1)),u(s("input",{id:"newPassword","onUpdate:modelValue":e[4]||(e[4]=a=>r.value.new=a),type:"password",class:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",disabled:l.value},null,8,H),[[d,r.value.new]])]),s("div",null,[e[11]||(e[11]=s("label",{for:"confirmPassword",class:"block text-sm font-medium text-gray-700 mb-2"}," Passwort bestätigen ",-1)),u(s("input",{id:"confirmPassword","onUpdate:modelValue":e[5]||(e[5]=a=>r.value.confirm=a),type:"password",class:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-primary-500",disabled:l.value},null,8,Z),[[d,r.value.confirm]])])])]),o.value?(m(),p("div",$,[v(c(A),{size:20,class:"mr-2"}),w(" "+g(o.value),1)])):y("",!0),f.value?(m(),p("div",I,[v(c(B),{size:20,class:"mr-2"}),w(" "+g(f.value),1)])):y("",!0),s("div",G,[s("button",{type:"button",onClick:x,class:"px-6 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors",disabled:l.value}," Zurücksetzen ",8,J),s("button",{type:"submit",class:"px-6 py-2 bg-primary-600 hover:bg-primary-700 text-white font-semibold rounded-lg transition-colors flex items-center",disabled:l.value},[l.value?(m(),M(c(h),{key:0,size:20,class:"animate-spin mr-2"})):y("",!0),s("span",null,g(l.value?"Speichert...":"Speichern"),1)],8,K)])],32))])])]))}};export{ee as default};
|