1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6702],{2514:function(a,b,c){"use strict";var d=c(34727),e=c(34051),f=c.n(e),g=c(85893),h=c(67294),i=c(41092),j=c(33177),k=c(3015),l=c.n(k),m=c(12280),n=c(4298),o=c.n(n),p=c(14357),q=c(15633),r=c(96040),s=function(a){var b=a.isOpen,e=a.onClose,k=a.userId,n=a.registrationId,s=a.totalAmount,t=a.onPaymentSuccess,u=a.isDirectRegistration,v=void 0!==u&&u,w=a.teamLeaderData,x=void 0===w?null:w,y=a.participantsData,z=void 0===y?null:y,A=(0,h.useState)(""),B=A[0],C=A[1],D=(0,h.useState)(""),E=(D[0],D[1]),F=(0,h.useState)(!1),G=F[0],H=F[1],I=(0,h.useState)(0),J=I[0],K=I[1],L=(0,h.useState)(!1),M=L[0],N=L[1],O=(0,h.useState)("idle"),P=O[0],Q=O[1],R=(0,h.useState)(""),S=R[0],T=R[1],U=(0,h.useState)(null),V=U[0],W=U[1],X=(0,h.useState)(null),Y=X[0],Z=X[1],$=(0,h.useState)(null),_=$[0],aa=$[1],ab=(0,h.useState)(null),ac=ab[0],ad=ab[1],ae=(0,h.useState)("mpesa"),af=ae[0],ag=ae[1],ah=(0,h.useState)("paystack");ah[0],ah[1];var ai=(0,h.useState)("form"),aj=(ai[0],ai[1]),ak=(0,h.useState)(""),al=(ak[0],ak[1]),am=(0,h.useRef)(""),an=(0,h.useState)(!1),ao=an[0],ap=an[1],aq=(0,h.useState)(""),ar=aq[0],as=aq[1],at=(0,h.useState)(""),au=at[0],av=at[1],aw=(0,h.useState)(!1),ax=aw[0],ay=aw[1],az=(0,h.useState)("Successfully Paid!"),aA=az[0],aB=az[1],aC=(0,h.useState)(!1),aD=aC[0],aE=aC[1],aF=(0,h.useRef)(!1),aG=(0,h.useState)({paidAmount:0,expectedAmount:0,remainingAmount:0}),aH=aG[0],aI=aG[1];(0,h.useEffect)(function(){return function(){aR(),ac&&clearTimeout(ac),q.Z.stopAllMonitoring()}},[ac]),(0,h.useEffect)(function(){b||aT()},[b]),(0,h.useEffect)(function(){var a=function(a){a.ctrlKey&&a.altKey&&"r"===a.key&&(a.preventDefault(),console.log("\uD83D\uDEA8 Emergency reset triggered via keyboard shortcut"),aU())};return b&&document.addEventListener("keydown",a),function(){document.removeEventListener("keydown",a)}},[b]),(0,h.useEffect)(function(){if(b&&k&&n){console.log("\uD83D\uDD04 Setting up real-time listener for registration:",n);var a=(0,i.JU)(j.db,"users",k,"registrations",n),c=!0,d=(0,i.cf)(a,function(a){if(a.exists()){var b=a.data();if(console.log("\uD83D\uDCCA Registration update received:",{registrationId:n,paymentStatus:b.paymentStatus,timestamp:new Date().toISOString(),initialLoad:c}),c){c=!1,console.log("âï¸ Skipping initial load to avoid triggering on existing payments");return}if("completed"===b.paymentStatus){if(console.log("â
Payment completed detected via registration listener"),Q("success"),N(!1),T("Payment completed successfully!"),aS(),ac&&(clearTimeout(ac),ad(null)),t)try{t()}catch(d){console.error("â Error in payment success callback:",d)}}else"failed"===b.paymentStatus?(console.log("â Payment failed detected via registration listener"),Q("failed"),N(!1),T(b.failureReason||"Payment failed. Please try again.")):"cancelled"===b.paymentStatus?(console.log("\uD83D\uDEAB Payment cancelled detected via registration listener"),Q("cancelled"),N(!1),T("Payment was cancelled. Please try again.")):"partial"===b.paymentStatus&&(console.log("â ï¸ Partial payment detected via registration listener"),Q("partial"),N(!1),aI({paidAmount:b.paidAmount||0,expectedAmount:b.expectedAmount||s,remainingAmount:b.remainingAmount||s-(b.paidAmount||0)}),T("Partial payment of KES ".concat(b.paidAmount," received. KES ").concat(b.remainingAmount," still needed.")))}},function(a){console.error("â Error listening to registration updates:",a)});return aa(function(){return d}),function(){console.log("\uD83E\uDDF9 Cleaning up registration listener"),d()}}},[b,k,n]);var aJ,aK,aL,aM,aN,aO,aP,aQ,aR=(0,h.useCallback)(function(){Y&&(Y(),Z(null)),_&&(_(),aa(null))},[Y,_]),aS=(0,h.useCallback)(function(){console.log("\uD83C\uDF89 Starting success animation..."),setTimeout(function(){aE(!0),aB("Redirecting..."),console.log("⨠Success animation complete - waiting for account creation...")},1500),setTimeout(function(){console.log("â° Fallback redirect triggered after 60 seconds"),t&&t()},6e4)},[t]),aT=(0,h.useCallback)(function(){C(""),E(""),H(!1),K(0),N(!1),Q("idle"),T(""),W(null),ap(!1),as(""),av(""),ay(!1),aB("Successfully Paid!"),aE(!1),aI({paidAmount:0,expectedAmount:0,remainingAmou
1nt:0}),aj("form"),al(""),aF.current=!1,aR(),ac&&(clearTimeout(ac),ad(null)),q.Z.stopAllMonitoring()},[aR,ac]),aU=(0,h.useCallback)(function(){console.log("\uD83D\uDD04 Force resetting all state"),aT(),localStorage.removeItem("pendingTeamPayment")},[aT]),aV=function(a){var b=a.target.value;(b=b.replace(/\D/g,"")).startsWith("0")&&(b=b.slice(1)),b.length>9&&(b=b.slice(0,9)),C(b),E("+254".concat(b))},aW=function(){if("partial"===P&&aH.remainingAmount>0){var a=G?parseInt(J||0):0;return aH.remainingAmount+a}var b=G?parseInt(J||0):0;return s+b},aX=(aJ=(0,d.Z)(f().mark(function a(b){var c,e,g,h,i,j,k,l;return f().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:console.log("\uD83D\uDD0D Starting transaction monitoring for:",b),g=0,h=5e3,i=8e3,j=6,k=function(){var a=(0,d.Z)(f().mark(function a(){var d,h,l,m;return f().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,g++,a.next=5,fetch("/api/mpesa/transaction-status?accountNumber=".concat(b),{method:"GET",headers:{"Content-Type":"application/json"}});case 5:return h=a.sent,a.next=8,h.json();case 8:if(l=a.sent,console.log("\uD83D\uDCCA Poll #".concat(g," â transaction status:"),null==l?void 0:null===(d=l.data)|| void 0===d?void 0:d.status),!l.success){a.next=41;break}if("completed"!==(m=l.data.status)){a.next=40;break}if(console.log("â
Payment completed via polling!"),clearInterval(c),clearTimeout(e),!aF.current){a.next=19;break}return console.log("â ï¸ Account creation already triggered, skipping duplicate"),a.abrupt("return");case 19:if(aF.current=!0,Q("success"),N(!1),T("Payment completed successfully!"),aS(),!(v&&x)){a.next=37;break}return a.prev=25,a.next=28,aY(l.data);case 28:a.next=35;break;case 30:a.prev=30,a.t0=a.catch(25),console.error("â Error creating user account:",a.t0),T("Payment completed! Please contact support if you have issues logging in."),t&&t();case 35:a.next=38;break;case 37:t&&t();case 38:a.next=41;break;case 40:"cancelled"===m||"failed"===m?(clearInterval(c),clearTimeout(e),Q("failed"),N(!1),T("Payment was cancelled or failed. Please try again.")):g===j&&(clearInterval(c),c=setInterval(k,i),console.log("\uD83D\uDD0D Switching to slow polling interval (8s)"));case 41:a.next=46;break;case 43:a.prev=43,a.t1=a.catch(0),console.error("â Error polling transaction status:",a.t1);case 46:case"end":return a.stop()}},a,null,[[0,43],[25,30]])}));return function(){return a.apply(this,arguments)}}(),c=setInterval(k,h),e=setTimeout(function(){console.log("â° Payment monitoring timeout after 5 minutes"),clearInterval(c),Q("failed"),N(!1),T("Payment verification timed out. Please try again or use manual confirmation.")},3e5),l=function(){clearInterval(c),clearTimeout(e)},Z(function(){return l});case 12:case"end":return a.stop()}},a)})),function(a){return aJ.apply(this,arguments)}),aY=(aK=(0,d.Z)(f().mark(function a(b){var d,e,g,h,i,j;return f().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,console.log("\uD83D\uDD10 Creating user account after successful payment..."),T("Creating your team portal account..."),a.next=5,fetch("/api/auth/create-account-after-payment",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({teamLeaderData:x,participantsData:z,registrationId:n,transactionData:b})});case 5:return d=a.sent,a.next=8,d.json();case 8:if(!(e=a.sent).success){a.next=60;break}if(console.log("â
User account created successfully:",e.userId),T("Account created! Setting up your secure login session..."),!e.customToken){a.next=49;break}return console.log("\uD83D\uDD10 Auto-signing in user with custom token..."),a.prev=14,a.next=17,Promise.resolve().then(c.bind(c,56965));case 17:return g=a.sent.signInWithCustomToken,a.next=20,Promise.resolve().then(c.bind(c,33177));case 20:return h=a.sent.auth,a.next=23,g(h,e.customToken);case 23:return i=a.sent,console.log("â
User automatically signed in!",i.user.uid),a.next=27,aZ("completed",b,e.userId);case 27:return j={userId:e.userId,phoneNumber:x.phone,fullName:x.name,email:x.email,loginTime:new Date().toISOString(),accountType:"marathon",isLoggedIn:!0},localStorage.setItem("bbgg_session",JSON.stringify(j)),console.log("â
Session created and stored"),a.next=32,new Promise(function(a){return setTimeout(a,500)});case 32:t&&(console.log("\uD83D\uDCDE Calling onPaymentSuccess callback for redirect"),t()),a.next=47;break;case 35:return a.prev=35,a.t0=a.catch(14),console.error("â Auto-signin failed:",a.t0),a.prev=38,a.next=41,aZ("completed",b,e.userId);case 41:a.next=46;break;case 43:a.prev=43,a.t1=a.catch(38),console.error("â ï¸ Failed to update temp registration:",a.t1);case 46:t&&(console.log("\uD83D\uDCDE Calling onPaymentSuccess after sign-in failure fallback"),t());case 47:a.next=58;break;case 49:return a.prev=49,a.next=52,aZ("completed",b,e.userId);case 52:a.next=57;break;case 54:a.prev=54,a.t2=a.catch(49),console.error("â ï¸ Failed to update temp registration:",a.t2);case 57:t&&(console.log("\uD83D\uDCDE Calling onPaymentSuccess (no custom token path)"),t());case 58:a.next=62;break;case 60:throw console.error("â Failed to create user account:",e.error),Error(e.error||"Failed to create user account");case 62:a.next=68;break;case 64:throw a.prev=64,a.t3=a.catch(0),console.error("â Error creating user account:",a.t3),a.t3;case 68:case"end":return a.stop()}},a,null,[[0,64],[14,35],[38,43],[49,54]])})),function(a){return aK.apply(this,arguments)}),aZ=(aL=(0,d.Z)(f().mark(function a(b){var c,d,e,g,h,k,l=arguments;return f().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(c=l.length>1&& void 0!==l[1]?l[1]:{},d=l.length>2&& void 0!==l[2]?l[2]:null,n){a.next=4;break}return console.error("â Missing registrationId for update"),a.abrupt("return",null);case 4:if(a.prev=4,console.log("\uD83D\uDCDD Updating temp registration:",n,"with status:",b),"completed"!==b){a.next=22;break}return a.prev=7,a.next=10,fetch("/api/registration/confirm-payment",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:d,registrationId:n,transactionData:c})});case 10:return e=a.sent,a.next=13,e.json();case 13:if(!((g=a.sent).success&&g.data)){a.next=17;break}return console.log("â
Temp registration confirmed and bibs assigned on server"),a.abrupt("return",g.data);case 17:a.next=22;break;case 19:a.prev=19,a.t0=a.catch(7),console.warn("â ï¸ Error calling /api/registration/confirm-payment for temp registration:",a.t0);case 22:return h=(0,i.JU)(j.db,"tempRegistrations",n),k={paymentStatus:b,lastUpdated:new Date().toISOString()},"completed"===b&&(k.paymentDate=new Date().toISOString(),k.mpesaReceiptNumber=c.mpesaReceiptNumber||c.receiptNumber||"N/A",k.transactionId=c.transactionId||c.uniqueCode||"N/A",(c.provider||c.channel)&&(k.paymentMethod=c.provider||c.channel,k.provider=c.provider||c.channel),d&&(k.userId=d)),a.next=27,(0,i.r7)(h,k);case 27:return console.log("â
Temp registration updated successfully"),a.abrupt("return",null);case 31:return a.prev=31,a.t1=a.catch(4),console.error("â Error updating temp registration:",a.t1),a.abrupt("return",null);case 35:case"end":return a.stop()}},a,null,[[4,31],[7,19]])})),function(a){return aL.apply(this,arguments)}),a$=(aM=(0,d.Z)(f().mark(function a(b){var c,d,e,g,h,l=arguments;return f().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(c=l.length>1&& void 0!==l[1]?l[1]:{},!(!k||!n)){a.next=4;break}return console.error("â Missing userId or registrationId for update"),a.abrupt("return",null);case 4:if(a.prev=4,console.log("\uD83D\uDCDD Updating registration:",n,"with status:",b),"completed"!==b){a.next=22;break}return a.prev=7,a.next=10,fetch("/api/registration/confirm-payment",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:k,registrationId:n,transactionData:c})});case 10:return d=a.sent,a.next=13,d.json();case 13:if(!((e=a.sent).success&&e.data)){a.next=17;break}return console.log("â
Registration confirmed and bibs assigned on server"),a.abrupt("return",e.data);case 17:a.next=22;break;case 19:a.prev=19,a.t0=a.catch(7),console.warn("â ï¸ Error calling /api/registration/confirm-payment, falling back to direct update:",a.t0);case 22:return g=(0,i.JU)(j.db,"users",k,"registrations",n),h={paymentStatus:b,lastUpdated:new Date().toISOString()},"completed"===b&&(h.paymentDate=new Date().toISOString(),h.mpesaReceiptNumber=c.mpesaReceiptNumber||c.receiptNumber||"N/A",h.transactionId=c.transactionId||c.uniqueCode||"N/A",(c.provider||c.channel)&&(h.paymentMethod=c.provider||c.channel,h.provider=c.provider||c.channel)),a.next=27,(0,i.r7)(g,h);case 27:return console.log("â
Registration updated successfully"),a.abrupt("return",null);case 31:return a.prev=31,a.t1=a.catch(4),console.error("â Error updating registration:",a.t1),a.abrupt("return",null);case 35:case"end":return a.stop()}},a,null,[[4,31],[7,19]])})),function(a){return aM.apply(this,arguments)}),a_=(aN=(0,d.Z)(f().mark(function a(){var b,c,d,e,g,h,i,j,l;return f().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return al(e=(0,r.zN)("PSK")),am.current=e,g=(null==x?void 0:x.email)||(null==z?void 0:null===(b=z[0])|| void 0===b?void 0:b.email)||"[email protected]",h=(null==x?void 0:x.phone)||(null==z?void 0:null===(c=z[0])|| void 0===c?void 0:c.phone)||"",i=(null==x?void 0:x.name)||(null==z?void 0:null===(d=z[0])|| void 0===d?void 0:d.fullName)||"Participant",a.next=9,fetch("/api/paystack/initialize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:g,amount:aW(),reference:e,donorName:i,donorPhone:h,donationType:"bbgg",donationCode:n,userId:k||null,registrationId:n||null,message:"",isAnonymous:!1})});case 9:return j=a.sent,a.next=12,j.json();case 12:if((l=a.sent).success){a.next=15;break}throw Error(l.error||"Failed to initialize payment");case 15:return a.abrupt("return",l.data);case 16:case"end":return a.stop()}},a)})),function(){return aN.apply(this,arguments)}),a0=function(a){var b;if(!window.PaystackPop){T("Payment system is not loaded. Please refresh the page."),Q("failed"),aj("form"),N(!1);return}new window.PaystackPop().resumeTransaction(a,{onSuccess:(b=(0,d.Z)(f().mark(function a(b){var c,d,e,g,h,i,j,k;return f().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return aj("processing"),c=am.current,d=aW(),a.prev=3,a.next=6,fetch("/api/paystack/verify?reference=".concat(encodeURIComponent(c),"&expectedAmount=").concat(d));case 6:return e=a.sent,a.next=9,e.json();case 9:if(!(g=a.sent).success){a.next=32;break}if(Q("success"),T("Payment approved! Assigning bib numbers..."),i={mpesaReceiptNumber:(null===(h=g.data)|| void 0===h?void 0:h.gatewayResponse)||"CARD-PAY",transactionId:c,amount:d,provider:"paystack"},!(v&&x)){a.next=26;break}return a.prev=16,a.next=19,aY(i);case 19:a.next=24;break;case 21:a.prev=21,a.t0=a.catch(16),t&&t();case 24:a.next=30;break;case 26:return a.next=28,a$("completed",i);case 28:j=a.sent,t&&t(j);case 30:a.next=33;break;case 32:Q("failed"),T((null===(k=g.data)|| void 0===k?void 0:k.gatewayResponse)||"Payment verification failed.");case 33:a.next=39;break;case 35:a.prev=35,a.t1=a.catch(3),Q("failed"),T("Could not verify payment status.");case 39:case"end":return a.stop()}},a,null,[[3,35],[16,21]])})),function(a){return b.apply(this,arguments)}),onCancel:function(){Q("cancelled"),T("Payment was cancelled."),aj("form")}})},a1=(aO=(0,d.Z)(f().mark(function a(b){var c;return f().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return b.preventDefault(),N(!0),Q("processing"),a.prev=3,a.next=6,a_();case 6:a0(c=a.sent.access_code),a.next=15;break;case 10:a.prev=10,a.t0=a.catch(3),Q("failed"),N(!1),T(a.t0.message||"Something went wrong.");case 15:case"end":return a.stop()}},a,null,[[3,10]])})),function(a){return aO.apply(this,arguments)}),a2=(aP=(0,d.Z)(f().mark(function a(b){var c,d,e,g,h,i,j,l;return f().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(b.preventDefault(),Y&&(console.log("\uD83E\uDDF9 Cleaning up previous transaction monitoring"),Y(),Z(null)),N(!0),Q("processing"),a.prev=4,!(!B||9!==B.length|| !B.startsWith("7")&&!B.startsWith("1"))){a.next=7;break}throw Error("Please enter a valid Safaricom M-PESA number (07xx or 011x)");case 7:if("254795526788"!==(c="254".concat(B))){a.next=29;break}if(console.log("\uD83E\uDDEA TEST MODE: Simulating instant payment success for test phone"),Q("success"),N(!1),T("TEST: Payment simulated successfully!"),!(v&&x)){a.next=24;break}return a.prev=14,console.log("\uD83E\uDDEA TEST MODE: Creating user account..."),a.next=18,aY({mpesaReceiptNumber:"TEST-"+Date.now(),receiptNumber:"TEST-"+Date.now(),uniqueCode:"TEST-"+Date.now(),amount:s});case 18:console.log("â
Test mode: Account created successfully"),a.next=24;break;case 21:a.prev=21,a.t0=a.catch(14),console.error("â ï¸ Test mode: Account creation error (may already exist):",a.t0);case 24:return console.log("\uD83E\uDDEA TEST MODE: Triggering onPaymentSuccess callback in 1.5s..."),a.next=27,new Promise(function(a){return setTimeout(a,1500)});case 27:return t&&(console.log("\uD83E\uDDEA TEST MODE: Calling onPaymentSuccess NOW"),t()),a.abrupt("return");case 29:return d=aW(),e=G?parseInt(J||0):0,g={phoneNumber:c,totalFees:"partial"===P?aH.remainingAmou
1nt:s,donationAmount:e,participantIds:[n],userId:v?null:k,totalAmount:d},console.log("\uD83D\uDCB3 Initiating STK Push with model:",g),a.next=35,(0,p.I)(g);case 35:h=a.sent,console.log("\uD83D\uDCCA STK Push response:",h),i=h.data&&(h.data.CheckoutRequestID||h.data.MerchantRequestID||h.data.uniqueCode||h.uniqueCode),h.success||i?(console.log("â
STK Push initiated successfully:",h.data),Q("processing"),W(h.data),T("Payment initiated successfully! Please check your phone to complete the transaction."),(l=(null===(j=h.data)|| void 0===j?void 0:j.uniqueCode)||h.uniqueCode)?(console.log("\uD83D\uDD11 UniqueCode received:",l),aX(l)):console.warn("â ï¸ No uniqueCode in response - payment monitoring may not work")):(console.error("â STK Push truly failed:",h),Q("failed"),N(!1),T(h.message||"Payment initiation failed. Please try again."),W(h.data)),a.next=47;break;case 41:a.prev=41,a.t1=a.catch(4),console.error("â Error initiating payment:",a.t1),Q("failed"),N(!1),T(a.t1.message||"Payment initiation failed");case 47:case"end":return a.stop()}},a,null,[[4,41],[14,21]])})),function(a){return aP.apply(this,arguments)}),a3=(aQ=(0,d.Z)(f().mark(function a(b){var c,d,e,g,h,i,j,k,l,m,n,o,p,q;return f().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(b&&b.preventDefault&&b.preventDefault(),ay(!0),a.prev=2,console.log("\uD83D\uDD0D Attempting manual confirmation for account:",null==V?void 0:null===(c=V.data)|| void 0===c?void 0:c.uniqueCode),e=ar||(null==V?void 0:null===(d=V.data)|| void 0===d?void 0:d.uniqueCode)){a.next=8;break}throw Error("No account number available. Please enter the account number you used for payment.");case 8:return g={accountNumber:e},au&&au.trim()&&(g.mpesaTransactionId=au.trim().toUpperCase(),console.log("\uD83D\uDD0D Using provided transaction ID:",g.mpesaTransactionId)),a.next=12,fetch("/api/mpesa/confirm-manual",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)});case 12:return h=a.sent,a.next=15,h.json();case 15:if(i=a.sent,console.log("\uD83D\uDCCA Manual confirmation result:",i),!i.success){a.next=28;break}return Q("success"),l=(null===(j=i.data)|| void 0===j?void 0:j.verificationMethod)||"manual verification",m=(null===(k=i.data)|| void 0===k?void 0:k.mpesaReceiptNumber)||"N/A",T("Payment confirmed via ".concat(l,"! Receipt: ").concat(m)),a.next=25,a$("completed",i.data);case 25:t&&t(),a.next=29;break;case 28:i.verificationPending?(Q("processing"),T(i.message||"Transaction verification in progress. Please wait..."),alert((null===(n=i.data)|| void 0===n?void 0:n.instructions)||"Transaction verification initiated. Please wait 1-2 minutes and try again.")):i.cancelled?(Q("cancelled"),T("Payment was cancelled by the user."),alert(i.message||"The original STK Push was cancelled.")):i.isPartialPayment||i.partial?(Q("partial"),aI({paidAmount:i.data.paidAmount||i.data.actualPaidAmount,expectedAmount:i.data.expectedAmount,remainingAmount:i.data.remainingAmount}),alert(p="â
Partial payment received!\n\nPaid: KES ".concat(i.data.paidAmount||i.data.actualPaidAmount,"\nStill needed: KES ").concat(i.data.remainingAmount,"\n\nTo complete: Pay via Paybill ").concat("509700",", Account: ").concat(null==V?void 0:null===(o=V.data)|| void 0===o?void 0:o.uniqueCode))):(Q("failed"),T(q=i.message||"Unable to verify payment."),alert("".concat(q,"\n\n\uD83D\uDCA1 Please provide your M-Pesa transaction ID from your SMS receipt.")));case 29:a.next=37;break;case 31:a.prev=31,a.t0=a.catch(2),console.error("â Manual confirmation error:",a.t0),Q("failed"),T("Failed to verify payment. Please try again or contact support."),alert("â Failed to confirm payment. Please check your connection and try again.");case 37:return a.prev=37,ay(!1),a.finish(37);case 40:case"end":return a.stop()}},a,null,[[2,31,37,40]])})),function(a){return aQ.apply(this,arguments)}),a4=function(){if("processing"!==P||window.confirm("A payment is currently being processed. Closing may prevent automatic confirmation. Continue?"))e(),aT()};return(0,g.jsxs)(m.Z,{isOpen:b,onClose:a4,title:"Complete Payment",children:[(0,g.jsx)(o(),{src:"https://js.paystack.co/v2/inline.js",strategy:"afterInteractive"}),(0,g.jsxs)("div",{className:l()["payment-info"],children:[function(){switch(P){case"processing":return(0,g.jsxs)("div",{style:{padding:"20px",textAlign:"center",backgroundColor:"#fff3cd",border:"1px solid #ffeaa7",borderRadius:"8px",marginBottom:"20px"},children:[(0,g.jsx)("div",{style:{marginBottom:"10px",fontSize:"18px"},children:"â³ Processing Payment..."}),(0,g.jsx)("p",{children:"Please complete the transaction on your phone. Do not close this window."}),(0,g.jsx)("small",{style:{color:"#666",fontSize:"12px",marginTop:"10px",display:"block"},children:"Emergency: Press Ctrl+Alt+R to force reset if stuck"}),(0,g.jsx)("button",{onClick:function(){console.log("\uD83D\uDD04 Cancelling payment and resetting for retry"),Y&&(Y(),Z(null)),Q("idle"),T(""),N(!1),W(null)}
1,style:{marginTop:"15px",padding:"8px 16px",backgroundColor:"#e74c3c",color:"white",border:"none",borderRadius:"4px",cursor:"pointer"},children:"Cancel & Try Again"})]});case"success":return(0,g.jsxs)("div",{style:{padding:"20px",textAlign:"center",backgroundColor:"#d4edda",border:"1px solid #00b894",borderRadius:"8px",marginBottom:"20px"},children:[(0,g.jsx)("div",{style:{fontSize:"48px",marginBottom:"10px"},children:"â
"}),(0,g.jsx)("h3",{style:{color:"#00b894",marginBottom:"10px",transition:"all 0.5s ease-in-out",transform:aD?"scale(1.1)":"scale(1)"},children:aA}),(0,g.jsx)("p",{children:S}),aD&&(0,g.jsx)("div",{style:{marginTop:"15px",fontSize:"14px",color:"#666",fontStyle:"italic"},children:"Please wait while we redirect you..."})]});case"failed":return(0,g.jsxs)("div",{style:{padding:"20px",textAlign:"center",backgroundColor:"#f8d7da",border:"1px solid #e74c3c",borderRadius:"8px",marginBottom:"20px"},children:[(0,g.jsx)("div",{style:{fontSize:"48px",marginBottom:"10px"},children:"â"}),(0,g.jsx)("h3",{style:{color:"#e74c3c",marginBottom:"10px"},children:"Payment Failed"}),(0,g.jsx)("p",{children:S}),(0,g.jsx)("div",{style:{display:"flex",gap:"10px",justifyContent:"center",marginTop:"15px",flexWrap:"wrap"},children:(0,g.jsx)("button",{onClick:function(){Q("idle"),T(""),ap(!1)},style:{padding:"8px 16px",backgroundColor:"#e74c3c",color:"white",border:"none",borderRadius:"4px",cursor:"pointer"},children:"Try Again"})})]});case"cancelled":return(0,g.jsxs)("div",{style:{padding:"20px",textAlign:"center",backgroundColor:"#ffeaa7",border:"1px solid #fdcb6e",borderRadius:"8px",marginBottom:"20px"},children:[(0,g.jsx)("div",{style:{fontSize:"48px",marginBottom:"10px"},children:"\uD83D\uDEAB"}),(0,g.jsx)("h3",{style:{color:"#e17055",marginBottom:"10px"},children:"Payment Cancelled"}),(0,g.jsx)("p",{children:S}),(0,g.jsxs)("div",{style:{display:"flex",gap:"10px",justifyContent:"center",marginTop:"15px"},children:[(0,g.jsx)("button",{onClick:function(){Q("idle"),T("")},style:{padding:"8px 16px",backgroundColor:"#fdcb6e",color:"white",border:"none",borderRadius:"4px",cursor:"pointer"},children:"Try Again"}),(0,g.jsx)("button",{onClick:function(){return ap(!0)},style:{padding:"8px 16px",backgroundColor:"#28a745",color:"white",border:"none",borderRadius:"4px",cursor:"pointer"},children:"I Paid Manually"})]})]});case"partial":return(0,g.jsxs)("div",{style:{padding:"20px",textAlign:"center",backgroundColor:"#fff3cd",border:"1px solid #ffc107",borderRadius:"8px",marginBottom:"20px"},children:[(0,g.jsx)("div",{style:{fontSize:"48px",marginBottom:"10px"},children:"â ï¸"}),(0,g.jsx)("h3",{style:{color:"#856404",marginBottom:"10px"},children:"Partial Payment Detected"}),(0,g.jsx)("p",{children:S}),aH.paidAmount>0&&(0,g.jsxs)("div",{style:{backgroundColor:"#f8f9fa",padding:"15px",margin:"15px 0",borderRadius:"4px",border:"1px solid #dee2e6"},children:[(0,g.jsxs)("p",{style:{margin:"5px 0",fontSize:"14px"},children:[(0,g.jsx)("strong",{children:"Paid:"})," KES ",aH.paidAmount]}),(0,g.jsxs)("p",{style:{margin:"5px 0",fontSize:"14px"},children:[(0,g.jsx)("strong",{children:"Expected:"})," KES ",aH.expectedAmount]}),(0,g.jsxs)("p",{style:{margin:"5px 0",fontSize:"14px",color:"#dc3545",fontWeight:"bold"},children:[(0,g.jsx)("strong",{children:"Remaining:"})," KES ",aH.remainingAmount]})]}),(0,g.jsx)("button",{onClick:function(){Q("idle"),T("")},style:{padding:"8px 16px",backgroundColor:"#ffc107",color:"#856404",border:"none",borderRadius:"4px",cursor:"pointer",fontWeight:"bold"},children:"Pay Remaining Amount"})]});default:return null}}(),ao&&"success"!==P&&(0,g.jsxs)("div",{style:{backgroundColor:"#f8f9fa",border:"1px solid #dee2e6",borderRadius:"8px",padding:"20px",marginBottom:"20px"},children:[(0,g.jsx)("h4",{style:{marginBottom:"15px",color:"#495057"},children:"Manual Payment Verification"}),(0,g.jsxs)("div",{style:{marginBottom:"15px"},children:[(0,g.jsx)("label",{style:{display:"block",fontWeight:"500",marginBottom:"5px"},children:"M-Pesa Transaction ID (Recommended)"}),(0,g.jsx)("input",{type:"text",value:au,onChange:function(a){return av(a.target.value)},placeholder:"e.g., QA23H4D5LM",style:{width:"100%",padding:"8px 12px",border:"1px solid #ced4da",borderRadius:"4px",fontSize:"14px"}})]}),(0,g.jsxs)("div",{style:{marginBottom:"20px"},children:[(0,g.jsx)("label",{style:{display:"block",fontWeight:"500",marginBottom:"5px"},children:"Account Number Used"}),(0,g.jsx)("input",{type:"text",value:ar,onChange:function(a){return as(a.target.value)},placeholder:"Account number from receipt",style:{width:"100%",padding:"8px 12px",border:"1px solid #ced4da",borderRadius:"4px",fontSize:"14px"}})]}),(0,g.jsxs)("div",{style:{display:"flex",gap:"10px"}
1,children:[(0,g.jsx)("button",{onClick:a3,disabled:ax|| !au&&!ar,style:{padding:"10px 20px",backgroundColor:"#28a745",color:"white",border:"none",borderRadius:"4px",cursor:!ax&&(au||ar)?"pointer":"not-allowed",opacity:!ax&&(au||ar)?1:.6},children:ax?"Verifying...":"Verify Payment"}),(0,g.jsx)("button",{onClick:function(){ap(!1),av(""),as("")},style:{padding:"10px 20px",backgroundColor:"#6c757d",color:"white",border:"none",borderRadius:"4px",cursor:"pointer"},children:"Cancel"})]})]}),"success"!==P&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)("div",{style:{display:"flex",marginBottom:"20px",gap:"10px"},children:[(0,g.jsx)("button",{type:"button",onClick:function(){return ag("mpesa")},style:{flex:1,padding:"10px",borderRadius:"4px",backgroundColor:"mpesa"===af?"#fec900":"#f8f9fa",border:"mpesa"===af?"2px solid #e5b500":"1px solid #ddd",fontWeight:"mpesa"===af?"bold":"normal",cursor:"pointer"},children:"M-Pesa"}),(0,g.jsx)("button",{type:"button",onClick:function(){return ag("card")},style:{flex:1,padding:"10px",borderRadius:"4px",backgroundColor:"card"===af?"#fec900":"#f8f9fa",border:"card"===af?"2px solid #e5b500":"1px solid #ddd",fontWeight:"card"===af?"bold":"normal",cursor:"pointer"},children:"Credit / Debit Card"})]}),(0,g.jsxs)("div",{className:l()["amount-display"],style:{marginBottom:"20px"},children:[(0,g.jsx)("span",{className:l()["amount-label"],children:"partial"===P?"Remaining Amount to Pay":"Total Amount to Pay"}),(0,g.jsxs)("span",{className:l()["amount-value"],children:["KES ",aW()]}),"partial"===P&&(0,g.jsx)("small",{style:{display:"block",marginTop:"5px",color:"#856404",fontWeight:"bold"},children:"(Partial payment - remaining balance)"})]}),"processing"!==P&&"mpesa"===af&&(0,g.jsxs)("form",{onSubmit:a2,children:[(0,g.jsxs)("div",{className:l()["input-group"],style:{marginBottom:"20px"},children:[(0,g.jsx)("label",{style:{display:"block",marginBottom:"8px",fontWeight:"600"},children:"Phone Number (M-PESA)"}),(0,g.jsxs)("div",{className:l()["phone-input-container"],style:{display:"flex",alignItems:"center"},children:[(0,g.jsx)("span",{style:{padding:"12px",backgroundColor:"#f8f9fa",border:"1px solid #ddd",borderRight:"none",borderRadius:"6px 0 0 6px",fontWeight:"600"},children:"+254"}),(0,g.jsx)("input",{type:"tel",autoComplete:"off",value:B,onChange:aV,placeholder:"7XXXXXXXX or 1XXXXXXXX",required:!0,disabled:M,maxLength:"9",style:{flex:1,padding:"12px",border:"1px solid #ddd",borderRadius:"0 6px 6px 0",fontSize:"16px"}})]}),(0,g.jsx)("small",{style:{color:"#666",fontSize:"14px",marginTop:"5px",display:"block"},children:"Enter your Safaricom M-PESA number (07xx or 011x)"})]}),(0,g.jsxs)("div",{className:l()["donation-group"],style:{marginBottom:"20px"},children:[(0,g.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:"pointer"},children:[(0,g.jsx)("input",{type:"checkbox",checked:G,onChange:function(a){return H(a.target.checked)},disabled:M,style:{width:"18px",height:"18px",cursor:"pointer"}}),(0,g.jsx)("span",{children:"Would you like to add a donation?"})]}),G&&(0,g.jsx)("input",{type:"number",value:J,onChange:function(a){return K(parseInt(a.target.value)||0)},placeholder:"Enter donation amount",disabled:M,style:{width:"100%",padding:"12px",borderRadius:"6px",border:"1px solid #ddd",fontSize:"16px",marginTop:"10px"}})]}),(0,g.jsx)("button",{type:"submit",disabled:M,style:{width:"100%",padding:"15px",backgroundColor:M?"#ccc":"#fec900",color:"#1a1a2e",border:"none",borderRadius:"8px",cursor:M?"not-allowed":"pointer",fontWeight:"700",fontSize:"18px"},children:M?"Processing...":"Pay with M-Pesa"})]}),"processing"!==P&&"card"===af&&(0,g.jsxs)("form",{onSubmit:a1,children:[(0,g.jsx)("div",{style:{marginBottom:"20px",padding:"15px",backgroundColor:"#f8f9fa",border:"1px solid #ddd",borderRadius:"8px"},children:(0,g.jsx)("p",{style:{margin:0,fontSize:"14px",color:"#555"},children:"You will be redirected to our secure payment gateway to complete your card payment. You can enter a donation below if you like."})}),(0,g.jsxs)("div",{className:l()["donation-group"],style:{marginBottom:"20px"},children:[(0,g.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:"pointer"},children:[(0,g.jsx)("input",{type:"checkbox",checked:G,onChange:function(a){return H(a.target.checked)},disabled:M,style:{width:"18px",height:"18px",cursor:"pointer"}}),(0,g.jsx)("span",{children:"Would you like to add a donation?"})]}),G&&(0,g.jsx)("input",{type:"number",value:J,onChange:function(a){return K(parseInt(a.target.value)||0)},placeholder:"Enter donation amount",disabled:M,style:{width:"100%",padding:"12px",borderRadius:"6px",border:"1px solid #ddd",fontSize:"16px",marginTop:"10px"}})]}),(0,g.jsx)("button",{type:"submit",disabled:M,style:{width:"100%",padding:"15px",backgroundColor:M?"#ccc":"#fec900",color:"#1a1a2e",border:"none",borderRadius:"8px",cursor:M?"not-allowed":"pointer",fontWeight:"700",fontSize:"18px"},children:M?"Processing...":"Pay with Card"})]})]})]})]})};b.Z=s},87682:function(a){a.exports={"register-container":"registration_register-container__oRXaa","register-progress":"registration_register-progress__Loidh","progress-bar":"registration_progress-bar__Aw4HS","progress-fill":"registration_progress-fill__oJqvb","progress-steps":"registration_progress-steps__BpRK7","step-indicator":"registration_step-indicator__g68dG",completed:"registration_completed__kk8kd",current:"registration_current__TzlA8","register-form":"registration_register-form__bljgl","warning-message":"registration_warning-message__slKgc","warning-icon":"registration_warning-icon__wjPFC","form-step":"registration_form-step__DnZrt","option-card":"registration_option-card__NPSJD","participation-options":"registration_participation-options__HGZKc","event-options":"registration_event-options__BrmDd","event-card":"registration_event-card__sGvRa",selected:"registration_selected__RjfH_","form-group":"registration_form-group__QJDiG","form-navigation":"registration_form-navigation__9Sqzv","nav-button":"registration_nav-button__K4UbG","submit-button":"registration_submit-button__a2yiU","error-message":"registration_error-message__0Mbti","review-details":"registration_review-details__HBX7M","review-item":"registration_review-item__jtWuB","success-message":"registration_success-message__QmLCt","success-actions":"registration_success-actions__seFdL",primary:"registration_primary__y3WS_","error-border":"registration_error-border__d4xjz"}},69779:function(a,b,c){"use strict";c.d(b,{Z:function(){return g}});var d=c(63641),e=c(62893),f=c(12267);
1function g(a){return function(a){if(Array.isArray(a))return(0,d.Z)(a)}(a)||(0,e.Z)(a)||(0,f.Z)(a)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}}}])
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.