PageSourceSearch

https://clubsenior.vercel.app/_next/static/immutable/chunks/2kvdxfl5h3oqf.js

js clubsenior.vercel.app collected 2026-10-03 05:17:33 UTC 7,994 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,63853,e=>{"use strict";let t=(0,e.i(89689).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["CircleAlert",0,t],63853)},19984,e=>{"use strict";let t=(0,e.i(89689).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["LoaderCircle",0,t],19984)},57853,e=>{"use strict";let t=(0,e.i(89689).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,t],57853)},25124,e=>{"use strict";var t=e.i(7123),a=e.i(71553),r=e.i(29548),s=e.i(63853),n=e.i(19984),i=e.i(23654),l=e.i(57853);let o=(0,e.i(89689).default)("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]);var c=e.i(47868),d=e.i(40581);function u(e,t){return e&&"object"==typeof e&&"error"in e&&e.error&&"object"==typeof e.error&&"message"in e.error&&"string"==typeof e.error.message?e.error.message:t}e.s(["AccountDeletionRequest",0,function(){let[e,m]=(0,r.useState)("loading"),[h,f]=(0,r.useState)(""),[x,p]=(0,r.useState)(""),[y,b]=(0,r.useState)(null),[g,j]=(0,r.useState)(""),[v,w]=(0,r.useState)(!1);async function k(){if("계정 삭제"!==h)return void j("확인을 위해 ‘계정 삭제’를 정확히 입력해 주세요.");w(!0),j("");try{let e=await fetch("/api/me/deletion-request",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({confirmation:h,...x.trim()?{reason:x.trim()}:{}})}),t=await e.json();if(!e.ok||!t.deletionRequest)throw Error(u(t,"계정 삭제를 요청하지 못했습니다."));(0,d.clearServerProfileCache)(window.localStorage);try{window.sessionStorage.removeItem(d.PROFILE_SESSION_SYNC_KEY)}catch{}b(t.deletionRequest),m("submitted")}catch(e){j(e instanceof Error?e.message:"계정 삭제를 요청하지 못했습니다.")}finally{w(!1)}}async function N(){w(!0),j("");try{let e=await fetch("/api/me/deletion-request",{method:"DELETE",headers:{"Content-Type":"application/json"},body:"{}"}),t=await e.json();if(!e.ok||!t.success)throw Error(u(t,"삭제 요청을 취소하지 못했습니다."));b(null)}catch(e){j(e instanceof Error?e.message:"삭제 요청을 취소하지 못했습니다.")}finally{w(!1)}}if((0,r.useEffect)(()=>{let e=!0;return async function(){try{let t=await (0,c.loadAccountDeletionRequest)();if(!e)return;if(!t.authenticated)return void m("anonymous");b(t.deletionRequest),m("ready")}catch(t){if(!e)return;j(t instanceof Error?t.message:"삭제 요청 상태를 확인하지 못했습니다."),m("ready")}}(),()=>{e=!1}},[]),"loading"===e)return(0,t.jsxs)("div",{className:"mt-5 flex min-h-40 items-center justify-center rounded-[2rem] border border-[var(--line)] bg-[var(--surface)]",role:"status",children:[(0,t.jsx)(n.LoaderCircle,{"aria-hidden":"true",className:"size-7 animate-spin text-[var(--primary)]"}),(0,t.jsx)("span",{className:"ml-3 text-[18px] font-bold",children:"로그인 상태를 확인하고 있습니다."})]});if("anonymous"===e)return(0,t.jsxs)("div",{className:"mt-5 rounded-[2rem] bg-[var(--ink)] p-6 text-white sm:p-8",children:[(0,t.jsx)(i.LogIn,{"aria-hidden":"true",className:"size-8 text-[var(--sun)]"}),(0,t.jsx)("h3",{className:"mt-4 text-xl font-black",children:"가입한 계정으로 먼저 로그인해 주세요."}),(0,t.jsx)("p",{className:"mt-3 text-[17px] leading-7 text-white/85 sm:text-[18px]",children:"본인 확인 후 이 페이지에서 계정과 연결된 데이터 삭제를 바로 요청할 수 있습니다."}),(0,t.jsx)(a.default,{className:"mt-6 inline-flex min-h-14 w-full items-center justify-center rounded-xl bg-white px-5 py-3 text-[18px] font-black text-[var(--ink)] sm:w-auto",href:"/login?returnTo=%2Faccount-deletion",children:"로그인하고 삭제 요청"})]});if(y){var E;return(0,t.jsxs)("div",{className:"mt-5 rounded-[2rem] border border-[var(--accent)]/35 bg-[var(--accent-soft)] p-6 sm:p-8",children:[(0,t.jsx)("h3",{className:"text-xl font-black",children:"계정 삭제가 요청되었습니다."}),(0,t.jsxs)("p",{className:"mt-3 text-[17px] leading-8 text-[var(--muted)] sm:text-[18px]",children:["예정일은 ",(0,t.jsx)("strong",{children:(E=y.scheduledFor,new Intl.DateTimeFormat("ko-KR",{dateStyle:"long",timeZone:"Asia/Seoul"}).format(new Date(E)))}),"입니다.","submitted"===e?" 보안을 위해 현재 기기의 세션은 로그아웃되었습니다.":""]}),"submitted"!==e&&"REQUESTED"===y.status?(0,t.jsxs)("button",{className:"button-secondary mt-6 w-full sm:w-auto",disabled:v,onClick:()=>void N(),type:"button",children:[(0,t.jsx)(o,{"aria-hidden":"true",className:"size-5"}),v?"취소 처리 중…":"삭제 요청 취소"]}
1):null,"submitted"===e?(0,t.jsx)(a.default,{className:"button-secondary mt-6 w-full sm:w-auto",href:"/login?returnTo=%2Faccount-deletion",children:"요청을 취소하려면 다시 로그인"}):null]})}return(0,t.jsxs)("div",{className:"panel mt-5 p-6 sm:p-8",children:[(0,t.jsx)("p",{className:"text-[17px] leading-8 text-[var(--muted)] sm:text-[18px]",children:"요청 즉시 모든 로그인 세션과 푸시 토큰이 해제됩니다. 7일의 유예 기간 안에는 다시 로그인해 요청을 취소할 수 있습니다."}),(0,t.jsxs)("label",{className:"mt-6 block text-[17px] font-black",htmlFor:"deletion-reason",children:["탈퇴 이유 ",(0,t.jsx)("span",{className:"font-semibold text-[var(--muted)]",children:"(선택)"})]}),(0,t.jsx)("textarea",{className:"input-shell mt-2 min-h-28 w-full resize-y",id:"deletion-reason",maxLength:500,onChange:e=>p(e.target.value),value:x}),(0,t.jsxs)("label",{className:"mt-6 block text-[17px] font-black",htmlFor:"deletion-confirmation",children:["확인을 위해 ",(0,t.jsx)("strong",{children:"계정 삭제"}),"를 입력해 주세요."]}),(0,t.jsx)("input",{autoComplete:"off",className:"input-shell mt-2 w-full",id:"deletion-confirmation",onChange:e=>f(e.target.value),value:h}),g?(0,t.jsxs)("p",{className:"mt-4 flex items-start gap-2 font-bold text-red-700",role:"alert",children:[(0,t.jsx)(s.CircleAlert,{"aria-hidden":"true",className:"mt-0.5 size-5 shrink-0"}),g]}):null,(0,t.jsxs)("button",{className:"mt-6 inline-flex min-h-14 w-full items-center justify-center gap-2 rounded-xl bg-red-700 px-5 py-3 text-[18px] font-black text-white disabled:cursor-not-allowed disabled:opacity-50 sm:w-auto",disabled:v||"계정 삭제"!==h,onClick:()=>void k(),type:"button",children:[(0,t.jsx)(l.Trash2,{"aria-hidden":"true",className:"size-5"}),v?"삭제 요청 중…":"계정과 데이터 삭제 요청"]})]})}],25124)},47868,e=>{"use strict";async function t(e,a,r={}){let s,n=r.fetchImplementation??fetch,i=await n(e,{cache:"no-store",credentials:"same-origin",...r.signal?{signal:r.signal}:{}});if(401===i.status)return{authenticated:!1};try{s=await i.json()}catch{throw Error("서버 응답을 확인하지 못했습니다. 잠시 후 다시 시도해 주세요.")}if(!i.ok){var l;throw Error((l=s)&&"object"==typeof l&&"error"in l&&l.error&&"object"==typeof l.error&&"message"in l.error&&"string"==typeof l.error.message?l.error.message:a)}return{authenticated:!0,data:s}}async function a(e,a){let r=await t(`/api/events/${encodeURIComponent(e)}/applications`,"신청 상태를 확인하지 못했습니다.",a);return r.authenticated?{authenticated:!0,application:r.data.application??null}:r}async function r(e){let a=await t("/api/me/deletion-request","삭제 요청 상태를 확인하지 못했습니다.",e);return a.authenticated?{authenticated:!0,deletionRequest:a.data.deletionRequest??null}:a}e.s(["loadAccountDeletionRequest",0,r,"loadEventApplication",0,a])}]);

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.