PageSourceSearch

https://youngsam.net/_next/static/chunks/1qqf96iqkaflf.js

js youngsam.net collected 2026-10-02 00:22:54 UTC 2,859 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,789954,e=>{"use strict";var t=e.i(972525),l=e.i(462560),a=e.i(755758),s=e.i(816552),r=e.i(198558);function i(){let e=(0,s.useRouter)(),i=(0,s.useSearchParams)().get("callbackUrl")||"",[n,o]=(0,l.useState)(""),[c,u]=(0,l.useState)(""),[p,d]=(0,l.useState)(""),[h,g]=(0,l.useState)(!1),[m,x]=(0,l.useState)(""),[f,y]=(0,l.useState)(!1),j=async t=>{t.preventDefault(),x(""),y(!0);let l=await (0,a.signIn)("credentials",{email:n,password:c,code:p,rememberMe:h?"true":"false",redirect:!1});if(l?.error){y(!1),x("이메일·비밀번호 또는 코드가 올바르지 않습니다.");return}let s=i;if(!s)try{let e=await fetch("/api/auth/session").then(e=>e.json());s=e?.user?.role==="admin"?"/admin":"/mypage"}catch{s="/mypage"}e.push(s),e.refresh()},v=i?`/signup?callbackUrl=${encodeURIComponent(i)}`:"/signup";return(0,t.jsx)("div",{className:"login-page",children:(0,t.jsxs)("form",{className:"login-box",onSubmit:j,children:[(0,t.jsx)("div",{className:"login-title",children:"로그인"}),(0,t.jsx)("div",{className:"login-subtitle",children:"YOUNGSAM.NET"}),m&&(0,t.jsx)("div",{className:"login-error",children:m}),(0,t.jsx)("input",{className:"login-input",type:"email",placeholder:"이메일",value:n,onChange:e=>o(e.target.value),required:!0}),(0,t.jsx)("input",{className:"login-input",type:"password",placeholder:"비밀번호",value:c,onChange:e=>u(e.target.value),required:!0}),(0,t.jsx)("input",{className:"login-input",type:"password",placeholder:"관리자 코드",value:p,onChange:e=>d(e.target.value),autoComplete:"off",inputMode:"numeric"}),(0,t.jsxs)("label",{style:{display:"flex",alignItems:"flex-start",gap:10,margin:"4px 0 16px",cursor:"pointer",userSelect:"none"},children:[(0,t.jsx)("input",{type:"checkbox",checked:h,onChange:e=>g(e.target.checked),style:{width:16,height:16,marginTop:2,cursor:"pointer",accentColor:"var(--color-primary)"}}),(0,t.jsxs)("span",{style:{flex:1},children:[(0,t.jsx)("span",{style:{fontSize:13.5,fontWeight:600,color:"var(--color-t1)",display:"block"},children:"이 기기 기억하기"}),(0,t.jsx)("span",{style:{fontSize:11.5,color:"var(--color-t3)",display:"block",marginTop:2},children:"체크 시 자동 로그인 유지 · 미체크 시 브라우저 종료 시 자동 로그아웃"})]})]}),(0,t.jsx)("button",{className:"login-btn",type:"submit",disabled:f,children:f?"로그인 중...":"로그인"}),(0,t.jsxs)("div",{style:{textAlign:"center",marginTop:16,fontSize:13,color:"var(--color-t3)"},children:["계정이 없으신가요?"," ",(0,t.jsx)(r.default,{href:v,style:{color:"var(--color-primary)",fontWeight:600},children:"회원가입"})]})]})})}e.s(["default",0,function(){return(0,t.jsx)(l.Suspense,{fallback:(0,t.jsx)("div",{className:"login-page"}),children:(0,t.jsx)(i,{})})}])}]);

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.