PageSourceSearch

https://xgo.vn/assets/LoginPage-9PorMtRM.js

js xgo.vn collected 2026-10-05 01:24:12 UTC 6,951 bytes, 1 lines download raw bytes

1import{j as e,B as v}from"./index-CtCtbJqt.js";import{d as N,f as w,r as o,L as d}from"./react-vendor-C26bqH57.js";import{a as k}from"./api-CFBlptnE.js";import{F as y,M as C,u as F,N as S,c as z,q as P,e as R,m as B,O as D}from"./index-BC77ufG8.js";const I=()=>{const m=N(),[u]=w(),l=u.get("redirect"),[i,g]=o.useState({email:"",password:""}),[c,h]=o.useState(!1),[x,n]=o.useState(""),p=t=>{const{name:a,value:r}=t.target;g(s=>({...s,[a]:r})),n("")},b=async t=>{var a,r;t.preventDefault(),h(!0),n("");try{const s=await k.login(i);if(s.data.success){localStorage.setItem("token-thieponline",s.data.data.token),localStorage.setItem("user-thieponline",JSON.stringify(s.data.data.user));const j=l&&l.startsWith("/")?l:"/admin";m(j)}}catch(s){n(((r=(a=s.response)==null?void 0:a.data)==null?void 0:r.message)||"Đăng nhập thất bại. Vui lòng kiểm tra lại thông tin.")}finally{h(!1)}},f=[{icon:P,title:"Thống kê Realtime",desc:"Theo dõi tá»· lệ mở thiệp, phản hồi RSVP và check-in tức thì"},{icon:R,title:"Quản lý Khách mời thông minh",desc:"Import danh sách Excel, tạo thiệp riêng tá»± động theo tên"},{icon:B,title:"Bảo mật & Phân quyền",desc:"Dữ liệu khách mời được mã hóa an toàn và bảo mật cao"},{icon:D,title:"Check-in QR trong 2 giây",desc:"Quét vé siêu tốc tại cá»­a đón khách không cần xếp hàng"}];return e.jsxs("div",{className:"min-h-screen bg-slate-50 flex",children:[e.jsx("div",{className:"w-full lg:w-1/2 flex items-center justify-center p-6 sm:p-10 bg-white/70 border-r border-slate-200/80",children:e.jsxs("div",{className:"w-full max-w-md",children:[e.jsx("div",{className:"text-center mb-8",children:e.jsxs(d,{to:"/",className:"inline-flex items-center gap-2.5 group",children:[e.jsx("div",{className:"w-10 h-10 bg-gradient-to-tr from-purple-600 via-indigo-600 to-pink-600 rounded-xl flex items-center justify-center shadow-md shadow-purple-500/20 text-white",children:e.jsx(y,{size:20})}),e.jsx("span",{className:"text-2xl font-black bg-gradient-to-r from-slate-900 via-purple-900 to-slate-900 bg-clip-text text-transparent",children:v.siteName})]})}),e.jsxs("div",{className:"bg-white rounded-3xl border border-slate-200/80 shadow-[0_10px_35px_-5px_rgba(0,0,0,0.06)] p-8 sm:p-10",children:[e.jsxs("div",{className:"text-center mb-8",children:[e.jsx("h2",{className:"text-2xl font-extrabold text-slate-900 mb-2",children:"Chào mừng trở lại"}),e.jsxs("p",{className:"text-slate-500 text-sm",children:["Chưa có tài khoản?"," ",e.jsx(d,{to:"/register",className:"text-purple-600 hover:text-purple-800 font-semibold underline-offset-2 hover:underline",children:"Đăng ký miễn phí"})]})]}),x&&e.jsxs("div",{className:"mb-6 p-4 bg-rose-50 border border-rose-200 rounded-xl flex items-start gap-3",children:[e.jsx(C,{className:"text-rose-600 mt-0.5 shrink-0",size:18}),e.jsx("p",{className:"text-rose-700 text-sm font-medium",children:x})]}),e.jsxs("form",{onSubmit:b,className:"space-y-5",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-xs font-bold text-slate-700 uppercase tracking-wider mb-2",children:"Địa chỉ Email"}),e.jsxs("div",{className:"relative",children:[e.jsx(F,{className:"absolute left-4 top-3.5 text-slate-400",size:17}),e.jsx("input",{type:"email",name:"email",value:i.email,onChange:p,placeholder:"[email protected]",className:"w-full pl-11 pr-4 py-3 bg-white border border-slate-200 rounded-xl text-slate-900 placeholder-slate-400 text-sm font-medium focus:outline-none focus:border-purple-600 focus:ring-4 focus:ring-purple-100 shadow-2xs transition-all",required:!0})]})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between items-center mb-2",children:[e.jsx("label",{className:"block text-xs font-bold text-slate-700 uppercase tracking-wider",children:"Mật khẩu"}),e.jsx(d,{to:"/forgot-password",className:"text-xs font-semibold text-purple-600 hover:text-purple-800",children:"Quên mật khẩu?"})]}),e.jsxs("div",{className:"relative",children:[e.jsx(S,{className:"absolute left-4 top-3.5 text-slate-400",size:17}),e.jsx("input",{type:"password",name:"password",value:i.password,onChange:p,placeholder:"••••••••",className:"w-full pl-11 pr-4 py-3 bg-white border border-slate-200 rounded-xl text-slate-900 placeholder-slate-400 text-sm font-medium focus:outline-none focus:border-purple-600 focus:ring-4 focus:ring-purple-100 shadow-2xs transition-all",required:!0})]})]}
1),e.jsx("button",{type:"submit",disabled:c,className:"w-full bg-gradient-to-r from-purple-600 via-indigo-600 to-pink-600 text-white font-bold py-3.5 rounded-xl shadow-md shadow-purple-500/20 hover:shadow-lg hover:shadow-purple-500/30 transition-all disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2 active:scale-[0.98]",children:c?e.jsx("div",{className:"w-5 h-5 border-2 border-white/30 border-t-white rounded-full animate-spin"}):e.jsxs(e.Fragment,{children:[e.jsx("span",{children:"Đăng nhập hệ thống"}),e.jsx(z,{size:17})]})})]})]}),e.jsxs("p",{className:"text-center text-slate-400 text-xs mt-6 leading-relaxed",children:["Bằng việc tiếp tục, bạn đồng ý với"," ",e.jsx("a",{href:"/terms",className:"text-purple-600 hover:underline",children:"Điều khoản dịch vụ"})," ","và"," ",e.jsx("a",{href:"/privacy",className:"text-purple-600 hover:underline",children:"Chính sách bảo mật"})]})]})}),e.jsxs("div",{className:"hidden lg:flex w-1/2 bg-gradient-to-br from-purple-50 via-indigo-50/50 to-pink-50/50 items-center justify-center p-12 relative overflow-hidden",children:[e.jsx("div",{className:"absolute top-1/4 right-1/4 w-80 h-80 bg-purple-200/50 rounded-full blur-3xl pointer-events-none"}),e.jsxs("div",{className:"max-w-lg relative z-10",children:[e.jsx("div",{className:"inline-flex items-center gap-2 px-3.5 py-1.5 bg-white border border-purple-200/70 rounded-full text-purple-700 text-xs font-bold mb-6 shadow-2xs",children:"Nền tảng thiệp mời thế hệ mới"}),e.jsxs("h2",{className:"text-3xl font-extrabold text-slate-900 mb-8 leading-snug",children:["Giải pháp tổ chức sự kiện ",e.jsx("br",{}),e.jsx("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-purple-600 to-pink-600",children:"Chuyên nghiệp & Sang trọng"})]}),e.jsx("div",{className:"space-y-4",children:f.map((t,a)=>e.jsxs("div",{className:"flex items-start gap-4 p-4 rounded-2xl bg-white/80 border border-slate-200/80 shadow-2xs backdrop-blur-xs hover:border-purple-200 transition-all",children:[e.jsx("div",{className:"w-11 h-11 bg-purple-50 text-purple-700 rounded-xl flex items-center justify-center shrink-0",children:e.jsx(t.icon,{size:20})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-slate-900 font-bold text-sm mb-1",children:t.title}),e.jsx("p",{className:"text-slate-500 text-xs leading-relaxed",children:t.desc})]})]},a))})]})]})]})};export{I 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.