PageSourceSearch

https://mystorage-booking.vercel.app/_next/static/chunks/pages/ko/book/complete-02afc80d5b7109b4.js

js mystorage-booking.vercel.app collected 2026-10-03 07:22:36 UTC 22,511 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9140],{5436:(e,t,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/ko/book/complete",function(){return s(8244)}])},8244:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>j});var l=s(7876),a=s(4232),n=s(7328),i=s.n(n),r=s(8230),o=s.n(r),d=s(9099),c=s(6171),x=s(2346),m=s(1236),u=s(7096),h=s(4353),f=s(133);let p=()=>(0,l.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,l.jsx)("polyline",{points:"20 6 9 17 4 12"})}),b=()=>(0,l.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",children:(0,l.jsx)("path",{d:"M19.5 3.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5 3 2v20l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21 22V2l-1.5 1.5zM19 19.09H5V4.91h14v14.18zM6 15h12v2H6zm0-4h12v2H6zm0-4h12v2H6z"})}),j=()=>{let e=(0,d.useRouter)(),{t}=(0,m.ok)(),[s,n]=(0,a.useState)(null),[r,j]=(0,a.useState)(!1),[N,g]=(0,a.useState)(null),[v,y]=(0,a.useState)(!1),[w,k]=(0,a.useState)(null),[_,S]=(0,a.useState)(!1),[I,A]=(0,a.useState)(!1),[M,R]=(0,a.useState)(null),[L,C]=(0,a.useState)(null),[E,D]=(0,a.useState)(!1),P=(0,a.useRef)(!1),q=(0,f.o)({pollExhausted:_,lockerStatus:w,invoiceFetchResult:s?{kind:"ok",status:s.status}:I?{kind:"unavailable"}:{kind:"pending"},queryStatus:"string"==typeof e.query.status?e.query.status:null}),F="active"===w,O="terminal_failure"===q.presentation,Z="activation_pending"===q.presentation;(0,a.useEffect)(()=>{if(!e.isReady)return;let t="autolocker"===e.query.type,s="string"==typeof e.query.bookingId?e.query.bookingId:null,l="string"==typeof e.query.invoiceId?e.query.invoiceId:null;if(t&&j(!0),s&&g(s),t&&s||!l)return void y(!0);let a=!1;return fetch("/api/payment/invoice-booking?invoiceId=".concat(encodeURIComponent(l))).then(e=>e.ok?e.json():null).then(e=>{!a&&e&&(e.isAutoLocker&&j(!0),e.bookingId&&g(e.bookingId))}).catch(()=>{}).finally(()=>{a||y(!0)}),()=>{a=!0}},[e.isReady,e.query.type,e.query.bookingId,e.query.invoiceId]),(0,a.useEffect)(()=>{if(P.current)return;P.current=!0;let e=(0,u.m)();(null==e?void 0:e.isAutoLocker)&&j(!0),sessionStorage.removeItem("mystorage_booking_state")},[]),(0,a.useEffect)(()=>{if(!r||!N||F)return;let e=0,t=Date.now(),s=setInterval(async()=>{e++;try{let e=await fetch("/api/autolocker/booking-status?bookingId=".concat(encodeURIComponent(N)));if(e.ok){let l=await e.json();if("active"===l.status){R(l.locker_code||null),C(l.end_time||null),k("active"),(0,u._)({bookingId:N,lockerCode:l.locker_code,startedAtMs:t}),clearInterval(s);return}if("processing"!==l.status){k(l.status||"unknown"),(0,u._)({bookingId:N,lockerCode:l.locker_code,reason:"terminal_status",startedAtMs:t}),clearInterval(s);return}k("processing")}}catch(e){}e>=15&&(S(!0),(0,u._)({bookingId:N,reason:"poll_timeout",startedAtMs:t}),clearInterval(s))},2e3);return()=>clearInterval(s)},[r,N,F]),(0,a.useEffect)(()=>{let{invoiceId:t}=e.query;t&&"string"==typeof t&&fetch("/api/payment/get-invoice?invoiceId=".concat(t)).then(e=>{if(!e.ok)throw Error("invoice fetch failed: ".concat(e.status));return e.json()}).then(t=>{if((null==t?void 0:t.success)&&t.invoice){var s,l,a,i,r,o,d,c;let x=t.invoice,m=null==(s=t.payments)?void 0:s.find(e=>"SUCCESS"===e.status),u=!!x.stripeSubscriptionId,f=(null==m?void 0:m.amount)?String(m.amount):x.amount,p=null;if(u&&x.metadata){let e=x.metadata,t=Number.isFinite(Number(e.recurring_discount_pct))?Number(e.recurring_discount_pct):5,s=null!=(r=e.duration_discount_pct)?r:0,l=null!=(o=e.monthly_rate)?o:0,a=null!=(d=e.protection_plan_fee)?d:0,n=null!=(c=e.duration_months)?c:1,i=(Math.round(l*(1-(s+t)/100))+a)*n,m=Math.round(.08*i);p={durationMonths:n,monthlyRate:l,durationDiscountPct:s,recurringDiscountPct:t,protectionPlanFee:a,renewalAmount:i+m}}n({invoiceId:x.invoiceId,status:x.status,amount:x.amount,actualAmount:f,paidAt:(null==m?void 0:m.createdAt)||((null==(l=t.payments)?void 0:l.length)>0?t.payments[0].createdAt:x.createdAt),provider:null==m?void 0:m.provider,isRecurring:u,recurringMetadata:p});let b=(0,h.b)({isAutoLocker:"autolocker"===e.query.type,serviceType:null==(a=x.metadata)?void 0:a.service_type});(0,h.F)({paidAt:x.paidAt,reservationExpiresAt:null==(i=x.metadata)?void 0:i.reservation_expires_at,laneKind:b})&&D(!0)}else throw Error("invoice unavailable")}).catch(e=>{console.error("Failed to fetch invoice details:",e),A(!0)})},[e.query]);let z=e=>{if(!e)return"";let t=parseFloat(e);return new Intl.NumberFormat("vi-VN",{style:"currency",currency:"VND"}).format(t)},H=e=>e?new Date(/(?:Z|[+-]\d{2}:?\d{2})$/.test(e)?e:"".concat(e,"Z")).toLocaleDateString("ko-KR",{timeZone:"Asia/Ho_Chi_Minh",month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit"}):"";return v?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(i(),{children:[(0,l.jsx)("title",{children:"예약 완료 - MyStorage"}),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"}),(0,l.jsx)("link",{rel:"icon",href:"/favicon.png",type:"image/png"}),(0,l.jsx)("link",{href:"https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700;900&family=Noto+Sans:wght@400;500;700&display=swap",rel:"stylesheet"}),(0,l.jsx)("link",{href:"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,[email protected],0..1&display=swap",rel:"stylesheet"})]}),(0,l.jsxs)("div",{className:"min-h-screen flex flex-col bg-[#f5f7f8]",children:[(0,l.jsx)(c.A,{}),(0,l.jsx)("main",{className:"flex-1 flex flex-col py-8 px-4 md:px-10 lg:px-40",children:r?(0,l.jsxs)("div",{className:"w-full max-w-[640px] mx-auto flex flex-col gap-8 items-center text-center",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-[#848483] font-semibold",children:"5단계 중 5단계"}),(0,l.jsxs)("span",{className:"inline-flex items-center gap-1 bg-green-100 text-green-700 text-xs font-bold px-2 py-0.5 rounded-full",children:[(0,l.jsx)(p,{}),"완료"]})]}),(0,l.jsx)("div",{className:"w-20 h-20 bg-green-100 rounded-full flex items-center justify-center",children:(0,l.jsx)("div",{className:"w-14 h-14 bg-green-500 rounded-full flex items-center justify-center text-white",children:(0,l.jsx)(p,{})})}),(0,l.jsx)("h1",{className:"text-slate-900 text-3xl md:text-4xl font-black tracking-tight font-['Roboto']",children:"감사합니다!"}),(0,l.jsx)("p",{className:"text-slate-500 text-lg font-['Noto_Sans'] max-w-md",children:O?"결제는 완료되었지만 선택한 사물함을 더 이상 사용할 수 없습니다. 팀에 알림이 전송되었으며 환불 ë
1˜ëŠ” 대체 사물함 안내를 위해 ê³§ 연락드리겠습니다.":F?"사물함이 준비되었습니다! 관리 페이지에서 원격 잠금 해제 또는 일회용 비밀번호를 요청하세요.":Z?"결제가 접수되었으며 사물함은 아직 활성화 중입니다. 보통 몇 분 이내에 완료됩니다.":"사물함 예약이 접수되었습니다. 예약 세부 정보와 다음 단계는 이메일을 확인해 주세요."}),!O&&!F&&Z&&(0,l.jsx)("div",{className:"mt-4 bg-amber-50 border border-amber-200 rounded-xl p-4 max-w-md",children:(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)("span",{className:"text-amber-500 text-xl",children:"⏳"}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-amber-800 font-semibold text-sm",children:"사물함 활성화 진행 중"}),(0,l.jsxs)("p",{className:"text-amber-700 text-sm mt-1",children:["사물함이 아직 활성화 중입니다. 몇 분 내에 이메일을 받지 못하시면 ",(0,l.jsx)("a",{href:"tel:+842877710118",className:"underline font-medium",children:"028 7771 0118"}),"로 문의해 주세요."]})]})]})}),!O&&(0,l.jsx)("div",{className:"w-full bg-white rounded-xl p-6 shadow-sm border border-slate-100",children:(0,l.jsxs)("div",{className:"flex items-center gap-4",children:[(0,l.jsx)("div",{className:"flex-shrink-0 w-12 h-12 bg-[#0275bc] rounded-full flex items-center justify-center text-white",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-2xl",children:"lock_open"})}),(0,l.jsxs)("div",{className:"text-left",children:[(0,l.jsx)("p",{className:"text-slate-900 font-bold text-base font-['Roboto']",children:"사물함 접근 관리"}),(0,l.jsxs)("p",{className:"text-slate-500 text-sm font-['Noto_Sans']",children:[F&&M?"사물함 ".concat(M,"이 활성화되었습니다. "):"","결제한 예약 시간 동안 관리 페이지에서 원격 잠금 해제 또는 일회용 비밀번호를 요청할 수 있습니다. 고정 PIN은 없습니다."]}),L&&(0,l.jsxs)("p",{className:"text-slate-500 text-xs mt-2 font-['Noto_Sans']",children:["결제된 접근 시간이 종료됩니다: ",new Date(/(?:Z|[+-]\d{2}:?\d{2})$/.test(L)?L:"".concat(L,"Z")).toLocaleString("ko-KR",{timeZone:"Asia/Ho_Chi_Minh",dateStyle:"medium",timeStyle:"short"})]}),(0,l.jsx)(o(),{href:"/ko/ministop/dashboard",className:"inline-flex mt-3 items-center justify-center rounded-full bg-[#0275bc] px-4 py-2 text-white font-semibold text-sm hover:bg-[#0260a3] transition-colors",children:"관리 페이지 열기"})]})]})}),!O&&(0,l.jsxs)("div",{className:"w-full bg-amber-50 border border-amber-200 rounded-xl p-4 text-left",children:[(0,l.jsx)("p",{className:"text-amber-900 font-semibold text-sm",children:"중요 접근 정책"}),(0,l.jsx)("p",{className:"text-amber-800 text-sm mt-1",children:"예약 시간이 만료되면 접근이 비활성화됩니다. 보관 기간 중 접근이 필요한 경우 108,000 VND로 2회 접근 액션을 구매해야 합니다. 보관 기간이 끝나면 사물함은 자동으로 다시 판매 가능 상태가 되며 다른 고객에게 배정될 수 있습니다."})]}),(0,l.jsx)("div",{className:"w-full bg-white rounded-xl p-6 shadow-sm border border-slate-100",children:(0,l.jsxs)("div",{className:"flex items-center gap-4",children:[(0,l.jsx)("div",{className:"flex-shrink-0 w-12 h-12 bg-[#0275bc] rounded-full flex items-center justify-center text-white",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-2xl",children:"mail"})}),(0,l.jsxs)("div",{className:"text-left",children:[(0,l.jsx)("p",{className:"text-slate-900 font-bold text-base font-['Roboto']",children:"이메일 확인"}),(0,l.jsx)("p",{className:"text-slate-500 text-sm font-['Noto_Sans']",children:"예약 세부 정보와 관리 페이지 접근 안내가 이메일로 전송되었습니다."})]})]})}),s&&(0,l.jsxs)("div",{className:"w-full bg-white rounded-xl p-6 shadow-sm border border-slate-100",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between mb-6 border-b border-slate-100 pb-4",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"p-2 bg-slate-100 rounded-full text-slate-600",children:(0,l.jsx)(b,{})}),(0,l.jsx)("h3",{className:"text-lg font-bold text-slate-900 font-['Roboto']",children:"결제 상세"})]}),(0,l.jsx)("span",{className:"text-xs font-bold px-3 py-1 rounded-full ".concat("PAID"===q.displayStatus?"bg-green-100 text-green-700":"bg-amber-100 text-amber-700"),children:q.dis
1playStatus})]}),(0,l.jsxs)("div",{className:"space-y-0 divide-y divide-slate-100",children:[(0,l.jsxs)("div",{className:"flex justify-between items-center py-3",children:[(0,l.jsx)("span",{className:"text-sm text-slate-500 font-['Noto_Sans']",children:"청구서 번호"}),(0,l.jsx)("span",{className:"font-mono text-sm font-medium text-slate-900",children:s.invoiceId})]}),s.paidAt&&(0,l.jsxs)("div",{className:"flex justify-between items-center py-3",children:[(0,l.jsx)("span",{className:"text-sm text-slate-500 font-['Noto_Sans']",children:"결제일"}),(0,l.jsx)("span",{className:"text-sm font-medium text-slate-700",children:H(s.paidAt)})]}),(0,l.jsxs)("div",{className:"flex justify-between items-center py-3",children:[(0,l.jsx)("span",{className:"text-sm text-slate-500 font-['Noto_Sans']",children:"결제 수단"}),(0,l.jsx)("span",{className:"text-sm font-medium text-slate-700",children:"PAID"===q.displayStatus?"MOMO"===s.provider?"MoMo 월렛":"SEPAY"===s.provider?"은행 이체":"STRIPE"===s.provider?"신용/직불 카드":"온라인 결제":"보류 중"})]}),s.amount&&(0,l.jsxs)("div",{className:"flex justify-between items-center py-4 mt-2 bg-slate-50 -mx-6 px-6 rounded-b-lg",children:[(0,l.jsx)("span",{className:"text-sm font-bold text-slate-700 font-['Noto_Sans']",children:"총 금액"}),(0,l.jsx)("span",{className:"text-xl font-black text-[#0275bc] tracking-tight",children:z(s.amount)})]})]})]}),"invoice_unavailable"===q.presentation&&(0,l.jsx)("div",{className:"w-full bg-white rounded-xl p-6 shadow-sm border border-slate-100",children:(0,l.jsxs)("div",{className:"flex items-center gap-4",children:[(0,l.jsx)("div",{className:"flex-shrink-0 p-2 bg-slate-100 rounded-full text-slate-600",children:(0,l.jsx)(b,{})}),(0,l.jsxs)("div",{className:"text-left",children:[(0,l.jsx)("p",{className:"text-slate-900 font-bold text-base font-['Roboto']",children:"결제가 접수되었습니다 — 예약을 확인하고 있습니다"}),(0,l.jsxs)("p",{className:"text-slate-500 text-sm font-['Noto_Sans']",children:["지금은 결제 세부 정보를 불러오지 못했습니다. 최종 내용은 확인 이메일에서 안내드립니다. 내용이 맞지 않으면"," ",(0,l.jsx)("a",{href:"tel:+842877710118",className:"underline font-medium",children:"028 7771 0118"}),"로 문의해 주세요."]})]})]})}),q.showBookAnother&&(0,l.jsx)("button",{onClick:()=>{let t=e.asPath.split("/").filter(Boolean)[0]||"ko";e.push("/".concat(t,"/book?step=service"))},className:"mt-4 bg-[#0275bc] text-white px-10 py-3 rounded-full font-bold text-base shadow-lg shadow-[#0275bc]/30 hover:bg-[#025a90] transition-all active:scale-95",children:"다른 사물함 예약"})]}):(0,l.jsxs)("div",{className:"w-full max-w-[1024px] mx-auto flex flex-col gap-8",children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,l.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-[#848483] font-semibold",children:"5단계 중 5단계"}),(0,l.jsxs)("span",{className:"inline-flex items-center gap-1 bg-green-100 text-green-700 text-xs font-bold px-2 py-0.5 rounded-full",children:[(0,l.jsx)(p,{}),"완료"]})]}),(0,l.jsx)("h1",{className:"text-slate-900 text-3xl md:text-4xl font-black leading-tight tracking-tight font-['Roboto']",children:"예약해 주셔서 감사합니다!"}),(0,l.jsx)("p",{className:"text-slate-500 text-base font-normal font-['Noto_Sans']",children:"고객님의 보관 여정이 ê³§ 시작됩니다. 1영업일 이내에 연락드리겠습니다."})]}),(0,l.jsx)("div",{className:"flex flex-col gap-8",children:(0,l.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,l.jsxs)("div",{className:"bg-white rounded-xl p-6 shadow-sm border border-slate-100",children:[(0,l.jsxs)("div",{className:"flex items-start gap-4 mb-6",children:[(0,l.jsx)("div",{className:"flex-shrink-0 w-14 h-14 bg-green-100 rounded-full flex items-center justify-center",children:(0,l.jsx)("div",{className:"w-9 h-9 bg-green-500 rounded-full flex items-center justify-center text-white",children:(0,l.jsx)(p,{})})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-lg font-bold text-slate-900 font-['Roboto'] mb-1",children:"예약 요청이 제출되었습니다"}),(0,l.jsx)("p",{className:"text-slate-500 text-sm font-['Noto_Sans']",children:"담당 팀에서 입주일 확인 및 세부 사항 마무리를 위해 연락드리겠습니다."})]})]}),(0,l.jsxs)("div",{className:"space-y-3",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3 bg-blue-50 rounded-lg p-4 border border-blue-100",children:[(0,l.jsx)("div",{className:"flex-shrink-0 w-10 h-10 bg-[#0275bc] rounded-full flex items-center justify-center text-white",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-xl",children:"call"})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-slate-900 font-bold text-sm font-['Roboto']",children:"ê³§ 연락드리겠습니다"}),(0,l.jsx)("p",{className:"text-slate-600 text-xs font-['Noto_Sans']",children:"1영업일 이내에 담당 팀에서 확인 연락을 드립니다."})]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-3 bg-orange-50 rounded-lg p-4 border border-orange-100",children:[(0,l.jsx)("div",{className:"flex-shrink-0 w-10 h-10 bg-[#FF914D] rounded-full flex items-center justify-center text-white",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-xl",children:"mail"})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-slate-900 font-bold text-sm font-['Roboto']",children:"이메일을 확인해 주세요"}),(0,l.jsx)("p",{className:"text-slate-600 text-xs font-['Noto_Sans']",children:"예약 요약이 이메일로 발송되었습니다."})]})]})]})]}),s&&(0,l.jsxs)("div",{className:"bg-white rounded-xl p-6 shadow-sm border border-slate-100",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between mb-6 border-b border-slate-100 pb-4",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"p-2 bg-slate-100 rounded-full text-slate-600",children:(0,l.jsx)(b,{})}),(0,l.jsx)("h3",{className:"text-lg font-bold text-slate-900 font-['Roboto']",children:"결제 상세"})]}),(0,l.jsx)("span",{className:"text-xs font-bold px-3 py-1 rounded-full ".concat("PAID"===q.displayStatus?"bg-green-100 text-green-700":"bg-amber-100 text-amber-700"),children:"PAID"===q.displayStatus?"결제 완료":"결제 대기"})]}),(0,l.jsxs)("div",{className:"space-y-0 divide-y divide-slate-100",children:[(0,l.jsxs)("div",{className:"flex justify-between items-center py-3",children:[(0,l.jsx)("span",{className:"text-sm text-slate-500 font-['Noto_Sans']",children:"청구서 ID"}),(0,l.jsx)("span",{className:"font-mono text-sm font-medium text-slate-900",children:s.invoiceId})]}),s.paidAt&&(0,l.jsxs)("div",{className:"flex justify-between items-center py-3",children:[(0,l.jsx)("span",{className:"text-sm text-slate-500 font-['Noto_Sans']",children:"결제일"}),(0,l.jsx)("span",{className:"text-sm font-medium text-slate-700",children:H(s.paidAt)})]}),(0,l.jsxs)("div",{className:"flex justify-between items-center py-3",children:[(0,l.jsx)("span",{className:"text-sm text-slate-500 font-['Noto_Sans']",children:"결제 방법"}),(0,l.jsx)("span",{className:"text-sm font-medium text-slate-700",children:"PAID"===q.displayStatus?"MOMO"===s.provider?"MoMo 월렛":"SEPAY"===s.provider?"은행 이체":"STRIPE"===s.provider?"신용/직불 카드":"온라인 결제":"보류 중"})]}),s.isRecurring&&s.recurringMetadata&&(0,l.jsxs)("div",{className:"py-3 space-y-1.5",children:[(0,l.jsxs)("div",{className:"flex justify-between items-center text-sm",children:[(0,l.jsx)("span",{className:"text-slate-500",children:"결제 유형"}),(0,l.jsxs)("span",{className:"font-medium text-green-700 bg-green-50 px-2 py-0.5 rounded-full text-xs font-bold",children:["정기 결제 ",s.recurringMetadata.durationMonths,"개월마다"]})]}),(0,l.jsxs)("div",{className:"flex justify-between items-center text-sm",children:[(0,l.jsx)("span",{className:"text-slate-500",children:"할인"}),(0,l.jsxs)("span",{className:"text-slate-700 font-medium",children:[s.recurringMetadata.durationDiscountPct,"% 기간 + ",s.recurringMetadata.recurringDiscountPct,"% 정기"]})]}),(0,l.jsxs)("div",{className:"flex justify-between items-center text-sm",children:[(0,l.jsx)("span",{className:"text-slate-500",children:"다음 갱신"}),(0,l.jsxs)("span",{className:"text-slate-700 font-medium",children:[z(String(s.recurringMetadata.renewalAmount))," / ",s.recurringMetadata.durationMonths,"개월"]})]})]}),(s.actualAmount||s.amount)&&(0,l.jsxs)("div",{className:"flex justify-between items-center py-4 mt-2 bg-slate-50 -mx-6 px-6 rounded-b-lg",children:[(0,l.jsx)("span",{className:"text-sm font-bold text-slate-700 font-['Noto_Sans']",children:s.isRecurring?"결제 완료 (첫 번째 기간)":"총 금액"}),(0,l.jsx)("span",{className:"text-xl font-black text-[#0275bc] tracking-tight",children:z(s.actualAmount||s.amount)})]})]})]}),"invoice_unavailable"===q.presentation&&(0,l.jsx)("div",{className:"bg-white rounded-xl p-6 shadow-sm border border-slate-100",children:(0,l.jsxs)("div",{className:"flex items-center gap-4",children:[(0,l.jsx)("div",{className:"flex-shrink-0 p-2 bg-slate-100 rounded-full text-slate-600",children:(0,l.jsx)(b,{})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-slate-900 font-bold text-base font-['Roboto']",children:"결제가 접수되었습니다 — 예약을 확인하고 있습니다"}),(0,l.jsxs)("p",{className:"text-slate-500 text-sm font-['Noto_Sans']",children:["지금은 결제 세부 정보를 불러오지 못했습니다. 최종 내용은 확인 이메일에서 안내드립니다. 내용이 맞지 않으면"," ",(0,l.jsx)("a",{href:"tel:+842877710118",className:"underline font-medium",children:"028 7771 0118"}),"로 문의해 주세요."]})]})]})}),(0,l.jsx)("div",{className:"bg-white rounded-xl p-6 shadow-sm border border-slate-100",children:(0,l.jsxs)("p",{className:"text-center text-sm text-slate-600 font-['Noto_Sans']",children:["도움이 필요하신가요?"," ",(0,l.jsx)("a",{href:"mailto:[email protected]",className:"text-[#0275bc] hover:underline font-medium",children:"[email protected]"})," \xb7 ",(0,l.jsx)("a",{href:"https://zalo.me/mystorage",className:"text-[#0275bc] hover:underline font-medium",children:"Zalo"})," \xb7 ",(0,l.jsx)("a",{href:"https://wa.me/84909123456",className:"text-[#0275bc] hover:underline font-medium",children:"WhatsApp"})]})})]})})]})})]}),(0,l.jsx)(x.A,{open:E,onClose:()=>D(!1),titleId:"paid-support-dialog-title",title:t("support.paidNeedsConfirmation.title"),body:t("support.paidNeedsConfirmation.body"),help:t("support.paidNeedsConfirmation.help"),references:[...N?[{label:t("support.common.referenceLabel"),value:N}]:[],...(null==s?void 0:s.invoiceId)?[{label:t("support.paidNeedsConfirmation.invoiceLabel"),value:s.invoiceId}]:[]]})]}):(0,l.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-[#f5f7f8]",children:(0,l.jsx)("div",{className:"w-8 h-8 border-4 border-gray-200 border-t-green-500 rounded-full animate-spin"})})}}},e=>{e.O(0,[8230,6171,6217,3988,636,6593,8792],()=>e(e.s=5436)),_N_E=e.O()}]);

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.