PageSourceSearch

https://www.climpact.it/assets/AccountErasurePage-zjWm5Lly.js

js climpact.it collected 2026-10-08 10:50:26 UTC 9,135 bytes, 1 lines download raw bytes

1import{a as A,r as i,j as e,L as x}from"./vendor-react-B4BIr4_A.js";import{S as T}from"./app-BCfwVS8x.js";import{_ as S}from"./evento-comune-FmQYl2SX.js";import{a as R}from"./firebase-config-Dn2Tu_JL.js";/* empty css                       */import{A as z,bS as F,L as N,C as y,M as _,F as Y,c4 as L,T as W,a as P}from"./icone-sito-BiOTxGdK.js";import"./modulepreload-polyfill-B5Qt9EMX.js";import"./crashBlackBox-NHteRanH.js";import"./vendor-firebase-AOn3Fvmd.js";import"./publicUrls-C1QEMgMu.js";/* empty css               *//* empty css                              *//* empty css                        *//* empty css                      *//* empty css               *//* empty css                    *//* empty css                      *//* empty css                      *//* empty css                      */const O=/^[0-9a-f]{64}$/,D="#b61b75",m="DELETE";function I(a){return typeof a!="string"?"":a.trim().toLowerCase()}function M(a){return O.test(I(a))}function U(a){return String(a??"").trim().toUpperCase()===m}async function E(a,s){const{getFunctions:n,httpsCallable:t}=await S(async()=>{const{getFunctions:l,httpsCallable:p}=await import("./vendor-firebase-AOn3Fvmd.js").then(d=>d.ah);return{getFunctions:l,httpsCallable:p}},[]),h=n(R,"europe-west1");return(await t(h,"accountErasure",{timeout:s})(a)).data}function B(a){return E({action:"load",token:a},3e4)}function G(a,s){return E({action:"delete",token:a,confirm:s},18e4)}function f(a){const s=(a&&(a.message||a.code)?String(a.message||a.code):"").toLowerCase();return s.includes("confirm-mismatch")?`Type ${m} exactly as shown to confirm.`:s.includes("portal-admin")?"This account holds an administrative role on the platform, so it cannot be erased from this link. Write to [email protected] and we will handle it directly.":s.includes("invalid-link")||s.includes("permission-denied")?"This link is not valid. It may belong to an account that has already been erased.":"We could not reach the server. Check your connection and try again."}const V=["Your name, email address, position, affiliation and biography","Every file you uploaded with your applications, and the PDF copies we generated","Your sign-in account: you will no longer be able to log in","Your newsletter subscription and the emails we have already sent you"],$=["Your applications, under a reference code instead of your name","The evaluations written about them, and any evaluation you wrote as a reviewer","The answers you gave to the questions in each call — they are the substance of the application, so if you signed one of them by hand, that name stays","A dated line in our erasure register, holding the reference code and nothing personal"];function ue(){const{token:a=""}=A(),[s,n]=i.useState("loading"),[t,h]=i.useState(null),[u,o]=i.useState(null),[l,p]=i.useState(""),[d,j]=i.useState(!1),b=i.useCallback(async()=>{if(!M(a)){o("This link is incomplete. Open it again from the email, or copy the whole address."),n("error");return}n("loading"),o(null);try{const r=await B(a);h(r),n(r&&r.status==="blocked"?"blocked":"ready")}catch(r){o(f(r)),n("error")}},[a]);i.useEffect(()=>{b()},[b]);async function k(){j(!0),o(null);try{const r=await G(a,l);h(r),n("done")}catch(r){o(f(r))}finally{j(!1)}}const g=t&&t.account&&t.account.name||"",v=t&&t.account&&t.account.email_masked||"",c=t&&t.counts||{applications:0,reviews:0},w=t&&t.code||"",C=U(l);return e.jsx(T,{tone:"dark",children:e.jsx("section",{className:"site-band aer-band",style:{"--aer-tint":D},children:e.jsxs("div",{className:"site-wrap site-auth-wrap",children:[e.jsxs(x,{to:"/site/calls",className:"site-call-back",children:[e.jsx(z,{size:16,"aria-hidden":"true"})," Back to the calls"]}),e.jsx("p",{className:"site-eyebrow",style:{marginTop:16},children:"Your data, Art. 17 GDPR"}),e.jsxs("h1",{className:"site-display",children:[s==="done"?"Your data has been":"Erase your",e.jsx("span",{className:"site-display-accent",children:s==="done"?"erased.":"account."})]}),e.jsx("p",{className:"site-lead",style:{marginTop:16,maxWidth:"58ch"},children:s==="done"?"Everything that identified you has been removed from the Climpact platform. What remains carries a reference code and n
1othing else.":"You can have everything that identifies you removed from the Climpact platform — no account, no sign-in. Read what goes and what stays before you confirm: this cannot be undone."}),e.jsxs("div",{className:"aer-card",children:[e.jsxs("div",{className:"aer-lockup",children:[e.jsx("span",{className:"aer-lockup-mark","aria-hidden":"true",children:e.jsx(F,{size:16})}),e.jsxs("span",{className:"aer-lockup-text",children:[e.jsx("span",{className:"aer-lockup-name",children:"Climpact Application Hub"}),e.jsx("span",{className:"aer-lockup-sub",children:"Right to erasure"})]})]}),s==="loading"&&e.jsxs("p",{className:"aer-status",role:"status",children:[e.jsx(N,{size:16,className:"aer-spin","aria-hidden":"true"}),e.jsx("span",{children:"Checking your link..."})]}),s==="error"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"site-call-alert",role:"alert",children:[e.jsx(y,{size:16,"aria-hidden":"true"}),e.jsx("span",{children:u})]}),e.jsx(x,{to:"/privacy",className:"site-btn site-btn-primary aer-submit",children:"Read the privacy policy"})]}),s==="blocked"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"site-call-alert",role:"alert",children:[e.jsx(y,{size:16,"aria-hidden":"true"}),e.jsx("span",{children:f({message:"portal-admin"})})]}),e.jsxs("a",{href:"mailto:[email protected]",className:"site-btn site-btn-primary aer-submit",children:[e.jsx(_,{size:16,"aria-hidden":"true"})," Write to [email protected]"]})]}),s==="ready"&&e.jsxs(e.Fragment,{children:[e.jsxs("dl",{className:"aer-facts",children:[(g||v)&&e.jsxs("div",{className:"aer-fact",children:[e.jsx("dt",{children:"Account"}),e.jsx("dd",{children:[g,v].filter(Boolean).join(" — ")})]}),e.jsxs("div",{className:"aer-fact",children:[e.jsxs("dt",{children:[e.jsx(Y,{size:12,"aria-hidden":"true"})," Applications on record"]}),e.jsx("dd",{children:c.applications})]}),e.jsxs("div",{className:"aer-fact",children:[e.jsxs("dt",{children:[e.jsx(L,{size:12,"aria-hidden":"true"})," Evaluations you wrote"]}),e.jsx("dd",{children:c.reviews})]})]}),e.jsxs("div",{className:"aer-ledger",children:[e.jsxs("div",{className:"aer-col aer-col-goes",children:[e.jsx("p",{className:"aer-col-head",children:"What is deleted"}),e.jsx("ul",{children:V.map(r=>e.jsx("li",{children:r},r))})]}),e.jsxs("div",{className:"aer-col aer-col-stays",children:[e.jsx("p",{className:"aer-col-head",children:"What stays, under a code"}),e.jsx("ul",{children:$.map(r=>e.jsx("li",{children:r},r))})]})]}),e.jsx("p",{className:"aer-why",children:"Applications are not deleted because each one is also an act in a selection procedure funded by the Italian Ministry of University and Research: destroying it would mean we could no longer show how a person was chosen. Art. 17(3) GDPR provides for exactly this. Your name is replaced by a code; the record survives, you do not appear in it."}),u&&e.jsxs("div",{className:"site-call-alert",role:"alert",children:[e.jsx(y,{size:16,"aria-hidden":"true"}),e.jsx("span",{children:u})]}),e.jsxs("label",{className:"aer-confirm",htmlFor:"aer-confirm-input",children:[e.jsxs("span",{className:"aer-confirm-label",children:["Type ",e.jsx("strong",{children:m})," to confirm"]}),e.jsx("input",{id:"aer-confirm-input",type:"text",className:"aer-confirm-input",value:l,onChange:r=>p(r.target.value),autoComplete:"off",autoCapitalize:"characters",spellCheck:"false",placeholder:m,disabled:d})]}),e.jsx("button",{type:"button",className:"site-btn site-btn-primary aer-submit",onClick:k,disabled:d||!C,children:d?e.jsxs(e.Fragment,{children:[e.jsx(N,{size:16,className:"aer-spin","aria-hidden":"true"})," Erasing..."]}):e.jsxs(e.Fragment,{children:[e.jsx(W,{size:16,"aria-hidden":"true"})," Erase my account permanently"]})}),e.jsx("p",{className:"aer-foot",children:"Changed your mind? Simply close this page — nothing happens until you type the word and confirm above."})]}),s==="done"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"site-call-alert site-call-alert-done",role:"status",children:[e.jsx(P,{size:16,"aria-hidden":"true"}),e.jsx("span",{children:"Your account and your personal data have been erased."})]}),w&&e.jsxs("dl",{className:"aer-facts",children:[e.jsxs("div",{className:"aer-fact",children:[e.jsx("dt",{children:"Your reference code"}),e.jsx("dd",{className:"aer-code",children:w})]}),e.jsxs("div",{className:"aer-fact",children:[e.jsx("dt",{children:"Anonymised"}),e.jsxs("dd",{children:[c.applications," application",c.applications===1?"":"s",", ",c.reviews," evaluation",c.reviews===1?"":"s"]})]})]}),e.jsxs("p",{className:"aer-why",children:[e.jsx("strong",{children:"Write the reference code down."})," It is now the only way to refer to those records — we cannot look you up by name any more, because ",e.jsx("strong",{children:"we no longer hold your name"}),"."]}),e.jsx(x,{to:"/site",className:"site-btn site-btn-primary aer-submit",children:"Back to climpact.it"})]})]})]})})})}export{ue 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.