PageSourceSearch

https://www.proactive.de/assets/react/index-Dm_VedBi.js

js proactive.de collected 2026-10-07 00:56:31 UTC 5,222 bytes, 1 lines download raw bytes

1import{r,R as e}from"./index-BLexuuUs.js";import{u as j}from"./index.esm-CjR1eyLh.js";import{i as y}from"./index-BQxMik4V.js";import{c as u}from"./cx-2dOUpm6k.js";import{f as S}from"./fetcher-zps9LNKv.js";import"./index-D6IIU_1M.js";function U({redirect:g}){var N,k;const{data:n,isValidating:_}=y("/api/settings",S),{data:l,isValidating:P}=y("/oidc",S),p=r.useMemo(()=>{var a;const t=g??((a=n==null?void 0:n.config)==null?void 0:a.loginRedirect);return t!=null&&t.length?t:null},[g,n]),[b,E]=r.useState(null),[C,f]=r.useState(!1),[d,o]=r.useState(!1),{handleSubmit:L,trigger:R,register:h,watch:M,formState:{errors:s,touchedFields:w,isSubmitted:v,isSubmitting:x}}=j({mode:"onChange",defaultValues:{email:"",password:""}}),i=M("email"),c=i&&((N=s==null?void 0:s.email)==null?void 0:N.type)!=="pattern",m=i&&((k=s==null?void 0:s.email)==null?void 0:k.type)!=="validate",z=r.useCallback(async()=>{try{o(!0),E(null),f(!1);const t=await fetch("/api/requestpasswordreset",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:i,callbackUrl:`${location.origin||`https://${location.host}`}/passwort-vergessen`})});if(!t.ok){const a=await t.json();throw new Error(a.message)}f(!0)}catch(t){E(t.message)}finally{o(!1)}},[i]),O=r.useCallback(async(t,{target:a})=>{a.submit(),o(!0)},[]),$=r.useCallback(async({issuer:t})=>{const a=await fetch("/oidc",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({issuer:t,origin:location.href})}),{redirect:F}=await a.json();location.href=F},[n]);return _||P?e.createElement("div",{className:"loader"}):C?e.createElement("div",{className:"alert alert_success"},"Wir haben Dir eine E-Mail zum Zurücksetzen Deines Passworts an ",i," gesendet.",e.createElement("br",null),e.createElement("a",{href:"/user/profil",className:"btn btn_small btn_outlined is-margin-top-2"},"Weiter zum Login")):b?e.createElement("div",{className:"alert alert_error"},b):e.createElement("div",{className:"is-width-full is-margin-middle-2"},e.createElement("form",{noValidate:!0,onSubmit:L(O),method:"post",action:`/api/login${p?`?redirect=${encodeURIComponent(p)}`:""}`},n.disablePassword&&e.createElement("div",{className:"is-margin-middle-3"},"Wir schicken dir einen magischen Link per E-Mail zu. Damit kannst du dich mit nur einem Klick ganz einfach anmelden."),e.createElement("div",{className:"field-group",role:"group"},e.createElement("div",{className:"input-group"},e.createElement("input",{type:"email",...h("email",{required:!0,pattern:{value:/\S+@\S+\.\S+/,message:"Ungültige E-Mail-Adresse"},validate:async t=>{try{if(o(!0),!(await fetch(`/api/checkEmail/${t}`)).ok)throw new Error("invalid_email");return!0}catch{return!1}finally{o(!1)}}}),placeholder:"E-Mail Adresse eingeben...",className:u("input",!!s.email&&"ng-invalid",!s.email&&"ng-valid",(w.email||v)&&"ng-touched"),autoComplete:"email",id:"email"}),d?e.createElement("div",{className:"input-group__addon"},e.createElement("div",{className:"loader"})):c&&e.createElement("button",{type:"button",onClick:()=>R(),className:"input-group__addon"},e.createElement("svg",{className:"ixo",style:{fontSize:24}},e.createElement("use",{xlinkHref:"#arrow-circle-right"}))))),!n.disablePassword&&c&&m&&e.createElement("div",{className:"field-group",role:"group"},e.createElement("label",{className:"field-group__label",htmlFor:"password","aria-label":"Passwort"},"Passwort"),e.createElement("input",{type:"password",...h("password",{required:!0}),placeholder:"Passwort eingeben...",className:u("input",!!s.password&&"ng-invalid",!s.password&&"ng-valid",(w.password||v)&&"ng-touched"),autoComplete:"current-password",id:"password"})),c&&e.createElement("div",{"data-grid":"center small-gutter"},!m&&e.createElement("div",{"data-col":"6@sm",className:"align-center"},e.createElement("button",{type:"button",className:"btn btn_block btn_outlined is-margin-bottom-2",onClick:z,disabled:d},"Passwort vergeben")),e.createElement("div",{"data-col":"6@sm",className:"align-center"},e.createElement("a",{className:u("btn btn_block magic-link is-margin-bottom-2",m&&"btn_minor"),href:`/api/requestLoginCode?email=${i}`},"Magic-Link senden")),m&&e.createElement("div",{"data-col":"6@sm",className:"align-center"},e.createElement("button",{type:"submit",className:"btn btn_block 
1is-margin-bottom-2",disabled:!c||x||d},"Login"))),(l==null?void 0:l.length)>0&&e.createElement(e.Fragment,null,e.createElement("div",{className:"is-margin-middle-5"},e.createElement("div",{className:"hr-sect"},e.createElement("small",null,"oder"))),e.createElement("div",{"data-grid":"center small-gutter"},l==null?void 0:l.map(({issuer:t,button:a})=>e.createElement("div",{"data-col":"6@sm",className:"align-center",key:t},e.createElement("button",{type:"button",className:"btn btn_block btn_outlined",onClick:()=>$({issuer:t})},a)))))),e.createElement("div",{className:"bumper"}),e.createElement("p",{className:"align-center"},e.createElement("a",{href:"/passwort-vergessen"},e.createElement("small",null,"Passwort vergessen?")),e.createElement("br",null),e.createElement("small",null,"Ich bin Mitglied, habe aber noch keinen ",e.createElement("a",{href:"/registrieren"},"kostenlosen Online-Account"),".")))}export{U as default};

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.