File manager - Edit - /home/webapp69.cm.in.th/u69319090023/Shop23/_next/static/chunks/1-oa3ti82ba5_.js
Back
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,28623,e=>{"use strict";let t=(0,e.i(56420).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,t],28623)},89664,e=>{"use strict";let t=(0,e.i(56420).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],89664)},61621,e=>{"use strict";e.s(["LocalStorageAdapter",0,class{async getItem(e){try{let t=localStorage.getItem(e);return t?JSON.parse(t):null}catch(t){return console.error(`Error reading key "${e}" from LocalStorage:`,t),null}}async setItem(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch(t){console.error(`Error writing key "${e}" to LocalStorage:`,t)}}async removeItem(e){try{localStorage.removeItem(e)}catch(t){console.error(`Error removing key "${e}" from LocalStorage:`,t)}}}])},8734,e=>{"use strict";let t=(0,e.i(56420).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,t],8734)},38815,e=>{"use strict";let t=new(e.i(61621)).LocalStorageAdapter,s=new class{storage;constructor(e){this.storage=e}getKey(e){return`ctc_collected_coupons_${e}`}async getCollectedCoupons(e){let t=await this.storage.getItem(this.getKey(e));if(t)return t;{let t=localStorage.getItem("collected_coupons");if(t)try{let s=JSON.parse(t);return await this.saveCollectedCoupons(e,s),s}catch{}}return[]}async saveCollectedCoupons(e,t){await this.storage.setItem(this.getKey(e),t)}}(t),r=[{code:"CMTC50",title:"ส่วนลดพิเศษ CMTC",description:"รับส่วนลด ฿50 ไม่มีขั้นต่ำ สำหรับคนรักวิทยาลัยเทคนิคเชียงใหม่ทุกคน",discount:50,minPurchase:0},{code:"WELCOME100",title:"ต้อนรับเปิดเทอมใหม่",description:"รับส่วนลด ฿100 เมื่อมียอดสั่งซื้อสินค้าตั้งแต่ ฿1,000 ขึ้นไป",discount:100,minPurchase:1e3},{code:"FREESHIP",title:"จัดส่งฟรีทั่วประเทศ",description:"ฟรีค่าจัดส่งพัสดุ เมื่อมียอดสั่งซื้อขั้นต่ำ ฿500 ขึ้นไป",discount:30,minPurchase:500}],a=new class{repository;constructor(e=s){this.repository=e}async getAvailableCoupons(){return{success:!0,data:r}}async getCollectedCoupons(e){try{let t=await this.repository.getCollectedCoupons(e);return{success:!0,data:t}}catch(e){return{success:!1,error:{code:"DATABASE_ERROR",message:e?.message||"ไม่สามารถดึงประวัติคูปองได้"}}}}async collectCoupon(e,t){try{let s=t.toUpperCase().trim();if(!r.some(e=>e.code===s))return{success:!1,error:{code:"NOT_FOUND",message:"ไม่พบรหัสคูปองนี้ในระบบร้านค้า"}};let a=await this.repository.getCollectedCoupons(e);if(a.includes(s))return{success:!1,error:{code:"ALREADY_COLLECTED",message:"คุณได้เก็บคูปองส่วนลดนี้ไปแล้ว"}};let l=[...a,s];return await this.repository.saveCollectedCoupons(e,l),localStorage.setItem("collected_coupons",JSON.stringify(l)),window.dispatchEvent(new Event("storage")),{success:!0,data:void 0}}catch(e){return{success:!1,error:{code:"DATABASE_ERROR",message:e?.message||"ไม่สามารถเก็บคูปองส่วนลดได้"}}}}};e.s(["default",0,a],38815)},25904,e=>{"use strict";var t=e.i(43476),s=e.i(71645),r=e.i(57688),a=e.i(57657),l=e.i(89664),c=e.i(8734),o=e.i(32781),i=e.i(28623),n=e.i(44779),d=e.i(38815);e.s(["default",0,function(){let[e,x]=(0,s.useState)(null),[m,u]=(0,s.useState)([]),[p,h]=(0,s.useState)([]),[g,f]=(0,s.useState)(!0),[b,y]=(0,s.useState)(null),[w,j]=(0,s.useState)(!1),[v,N]=(0,s.useState)(null);(0,s.useEffect)(()=>{let e=n.default.getCurrentUser();if(e){var t;x(e),t=e.id,f(!0),Promise.all([d.default.getAvailableCoupons(),d.default.getCollectedCoupons(t)]).then(([e,t])=>{e.success&&u(e.data),t.success&&h(t.data),f(!1)})}},[]);let C=async t=>{if(!e)return;N(null),y(t);let s=await d.default.collectCoupon(e.id,t);s.success?(h(e=>[...e,t]),"u">typeof navigator&&navigator.clipboard&&navigator.clipboard.writeText(t),N({message:`เก็บคูปองส่วนลด "${t}" เรียบร้อยแล้ว (คัดลอกลงคลิปบอร์ดแล้ว)`,type:"success"})):N({message:s.error.message,type:"error"}),setTimeout(()=>N(null),3e3),y(null)},k=async()=>{if(!e)return;j(!0),N(null);let t=m.map(e=>e.code).filter(e=>!p.includes(e));if(0===t.length){N({message:"คุณเก็บคูปองที่มีทั้งหมดเรียบร้อยแล้ว",type:"success"}),setTimeout(()=>N(null),3e3),j(!1);return}let s=0,r=[...p];for(let a of t)(await d.default.collectCoupon(e.id,a)).success&&(s++,r.push(a));s>0?(h(r),N({message:`เก็บคูปองสำเร็จทั้งหมด ${s} คูปอง! (คัดลอกรหัสล่าสุดลงคลิปบอร์ด)`,type:"success"})):N({message:"เกิดข้อผิดพลาดในการเก็บคูปอง",type:"error"}),setTimeout(()=>N(null),3e3),j(!1)};if(g)return(0,t.jsx)("div",{className:"min-h-[500px] flex items-center justify-center font-prompt text-white bg-gradient-to-b from-[#4A000B] to-[#200004] rounded-3xl p-8",children:(0,t.jsxs)("div",{className:"flex flex-col items-center space-y-3",children:[(0,t.jsx)(o.Loader2,{className:"w-8 h-8 animate-spin text-[#F3C25D]"}),(0,t.jsx)("p",{className:"text-sm font-medium text-amber-200/70",children:"กำลังโหลดโปรโมชั่นและคูปองสุดพิเศษ..."})]})});let S=m.length>0&&m.every(e=>p.includes(e.code));return(0,t.jsxs)("div",{className:"w-full font-prompt select-none overflow-hidden bg-gradient-to-b from-[#4A000B] via-[#2A0005] to-[#1A0003] border border-[#7A1F2D]/30 shadow-2xl rounded-3xl flex flex-col",children:[v&&(0,t.jsx)("div",{className:`fixed bottom-6 right-6 z-[100] px-5 py-3 rounded-2xl shadow-2xl border flex items-center space-x-2 text-sm font-semibold transition-all duration-300 ${"success"===v.type?"bg-[#D4A33B] text-amber-950 border-amber-300":"bg-rose-600 text-white border-rose-500"}`,children:(0,t.jsx)("span",{children:v.message})}),(0,t.jsxs)("div",{className:"relative w-full h-[240px] sm:h-[300px] md:h-[340px] overflow-hidden",children:[(0,t.jsx)(r.default,{src:"/u69319090023/Shop23/cmtc_promo_banner.png",alt:"CMTC SHOP Promotion Banner",fill:!0,priority:!0,className:"object-cover object-center"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-[#2A0005] via-transparent to-black/40"}),(0,t.jsxs)("div",{className:"absolute bottom-6 left-6 right-6 text-left flex flex-col justify-end",children:[(0,t.jsxs)("div",{className:"inline-flex items-center space-x-2 px-3 py-1 bg-amber-500/10 border border-amber-500/20 backdrop-blur-md rounded-full text-[10px] sm:text-xs font-semibold text-[#F3C25D] w-fit mb-2",children:[(0,t.jsx)(i.Sparkles,{className:"w-3.5 h-3.5"}),(0,t.jsx)("span",{children:"SPECIAL PROMOTION"})]}),(0,t.jsx)("h1",{className:"text-lg sm:text-2xl md:text-3xl font-black text-white leading-tight drop-shadow-lg tracking-wide",children:"ช้อปชุดนักศึกษาและอุปกรณ์ช่าง"}),(0,t.jsx)("p",{className:"text-xs sm:text-base md:text-lg font-medium text-amber-300/90 mt-1 drop-shadow-md leading-relaxed",children:"แหล่งรวมสินค้าคุณภาพเพื่อชาว CMTC"})]})]}),(0,t.jsxs)("div",{className:"p-5 sm:p-8 space-y-6 flex flex-col",children:[(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center text-center space-y-1.5 pb-2 border-b border-white/[0.08]",children:[(0,t.jsxs)("h2",{className:"text-lg sm:text-2xl font-black text-white tracking-wide flex items-center space-x-2",children:[(0,t.jsx)("span",{className:"w-1.5 h-6 bg-[#F3C25D] rounded-full inline-block"}),(0,t.jsx)("span",{className:"text-[#F3C25D]",children:"โค้ดส่วนลดจัดหนัก เตรียมช้อปพร้อมกัน"}),(0,t.jsx)("span",{className:"w-1.5 h-6 bg-[#F3C25D] rounded-full inline-block"})]}),(0,t.jsx)("p",{className:"text-[10px] sm:text-xs text-amber-200/60 font-light",children:"เก็บโค้ดส่วนลดวิทยาลัยแล้วนำรหัสไปกรอกในขั้นตอนการชำระเงิน"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-5",children:m.map(e=>{let s=p.includes(e.code),r=b===e.code,i=(e=>{switch(e){case"CMTC50":return"จำกัด 100 สิทธิ์ต่อวัน";case"WELCOME100":return"ใช้ได้เฉพาะสินค้าหมวดชุดนักเรียน/ชุดช่าง";case"FREESHIP":return"จำกัด 1 คูปองต่อท่าน";default:return""}})(e.code);return(0,t.jsxs)("div",{className:"relative flex items-stretch bg-[#280509] border border-[#7A1F2D]/40 rounded-2xl overflow-hidden shadow-xl hover:shadow-2xl transition-all duration-300 hover:border-[#DFB15B]/40 group",children:[(0,t.jsxs)("div",{className:"w-[100px] sm:w-[130px] flex-shrink-0 bg-gradient-to-br from-[#DFB15B] via-[#D4A33B] to-[#B38936] text-white flex flex-col items-center justify-center p-3 relative select-none",children:["FREESHIP"===e.code?(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsx)("span",{className:"text-xl sm:text-2xl font-black text-white leading-none",children:"ส่งฟรี"}),(0,t.jsx)("span",{className:"text-[9px] text-amber-200 mt-1 uppercase font-bold tracking-wider",children:"Free Delivery"})]}):(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsxs)("span",{className:"text-2xl sm:text-3xl font-black text-white leading-none",children:["฿",e.discount]}),(0,t.jsx)("span",{className:"text-[9px] text-amber-200 mt-1 uppercase font-bold tracking-wider",children:"Discount"})]}),(0,t.jsx)("span",{className:"text-[9px] sm:text-[10px] font-bold text-amber-950/80 mt-2 bg-white/20 px-2 py-0.5 rounded-full uppercase tracking-wider",children:e.code}),(0,t.jsx)("div",{className:"absolute top-0 right-0 w-3.5 h-3.5 bg-[#2A0005] rounded-full translate-x-[7px] -translate-y-[7px] border border-transparent z-10"}),(0,t.jsx)("div",{className:"absolute bottom-0 right-0 w-3.5 h-3.5 bg-[#2A0005] rounded-full translate-x-[7px] translate-y-[7px] border border-transparent z-10"})]}),(0,t.jsx)("div",{className:"w-[1px] border-r border-dashed border-[#DFB15B]/30 h-full relative"}),(0,t.jsxs)("div",{className:"flex-1 p-3.5 sm:p-4 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 sm:gap-4",children:[(0,t.jsxs)("div",{className:"space-y-1 text-left",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("div",{className:"p-1 rounded-lg bg-amber-500/10 text-[#DFB15B]",children:(0,t.jsx)(a.Ticket,{className:"w-4 h-4"})}),(0,t.jsx)("h3",{className:"text-sm sm:text-base font-bold text-white tracking-wide",children:e.title})]}),(0,t.jsx)("p",{className:"text-[11px] sm:text-xs text-gray-300 leading-relaxed font-light",children:e.description}),i&&(0,t.jsxs)("p",{className:"text-[9.5px] sm:text-[10px] text-amber-400 font-medium tracking-wide",children:["* ",i]}),(0,t.jsxs)("button",{onClick:()=>{"u">typeof navigator&&(navigator.clipboard.writeText(e.code),N({message:`คัดลอกรหัสโค้ด "${e.code}" ลงคลิปบอร์ดแล้ว`,type:"success"}),setTimeout(()=>N(null),2500))},className:"mt-2 inline-flex items-center space-x-1.5 px-2 py-0.5 bg-amber-500/10 hover:bg-amber-500/20 rounded-md text-[9px] font-semibold text-[#DFB15B] transition-colors cursor-pointer",children:[(0,t.jsx)(c.Copy,{className:"w-2.5 h-2.5"}),(0,t.jsx)("span",{children:e.code})]})]}),(0,t.jsx)("div",{className:"flex items-center sm:justify-end flex-shrink-0 w-full sm:w-auto",children:(0,t.jsx)("button",{type:"button",disabled:s||r,onClick:()=>C(e.code),className:`w-full sm:w-auto px-5 py-2 sm:py-2.5 rounded-xl text-xs font-bold transition-all flex items-center justify-center space-x-1.5 cursor-pointer ${s?"bg-white/5 border border-white/10 text-gray-400 cursor-default":"bg-gradient-to-r from-[#DFB15B] to-[#B38936] text-amber-950 hover:brightness-110 shadow-md active:scale-95"}`,children:r?(0,t.jsx)(o.Loader2,{className:"w-3.5 h-3.5 animate-spin"}):s?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.Check,{className:"w-3.5 h-3.5 text-[#DFB15B]"}),(0,t.jsx)("span",{children:"เก็บแล้ว"})]}):(0,t.jsx)("span",{children:"เก็บคูปอง"})})})]})]},e.code)})}),(0,t.jsx)("div",{className:"pt-2 select-none",children:(0,t.jsx)("button",{type:"button",disabled:S||w,onClick:k,className:`w-full py-4 text-sm font-extrabold rounded-2xl transition-all shadow-lg flex items-center justify-center space-x-2 cursor-pointer ${S?"bg-white/5 border border-white/10 text-gray-400 cursor-default":"bg-gradient-to-r from-[#F5D080] via-[#E1B454] to-[#C89B37] text-amber-950 hover:brightness-105 active:scale-[0.99] hover:shadow-xl hover:shadow-amber-500/10"}`,children:w?(0,t.jsx)(o.Loader2,{className:"w-4.5 h-4.5 animate-spin"}):S?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.Check,{className:"w-4 h-4 text-[#DFB15B]"}),(0,t.jsx)("span",{children:"เก็บครบทุกคูปองแล้ว"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.Ticket,{className:"w-4.5 h-4.5"}),(0,t.jsx)("span",{children:"เก็บคูปองทั้งหมด (3 โค้ด)"})]})})})]})]})}])}]);
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.32 |
proxy
|
phpinfo
|
Settings