PageSourceSearch

https://myka.ng/assets/ActivatePage-DjLMhykk.js

js myka.ng collected 2026-10-09 22:42:49 UTC 30,160 bytes, 1 lines download raw bytes

1import{j as e,r as P,d as Te,p as we,N as Ie}from"./vendor-react-DfYGAhtm.js";import{u as V,j as Be,C as H,d as Q,o as L,a as Ae,s as m,f as z,b as Me,c as Oe,i as De,F as ke}from"./vendor-forms-BP-7CbAP.js";import{m as c,a3 as $e,g as W,t as E,U as _e,aE as ze,a$ as Fe,Y as Le,b1 as ue,S as qe}from"./index-DsBgCU7r.js";import{S as he}from"./StepPageLayout-DdZUweau.js";import{M as b,a as y,R as U,H as Ye}from"./HealthFormShell-BdiFYoa2.js";import{bF as Ue,aZ as Ge,bD as We,bG as Ve,a as Ke,A as Xe,r as Je,aF as Qe}from"./vendor-icons-1odZwi-b.js";import{u as Ze,f as er,g as rr,a as tr}from"./mapHealthHospital-CkG_RL7N.js";import{S as or}from"./SelectField-B8rkxDSz.js";import{al as ir,am as sr,an as ar,ao as nr,F as R,S as ie,o as lr,a as T,T as v,V as $,G as F,I as w,H as D,v as k,t as q,x as Z,ap as cr,aq as dr,ar as pr,as as ur,at as hr,au as mr,i as gr}from"./vendor-ui-DA_r9yXk.js";import{G as xr,M as br,R as fr,B as yr,e as jr,f as Sr}from"./individualHealthConstants-DtbURbNc.js";import{D as Cr}from"./DatePickerField-CClDGS0S.js";import{g as G}from"./errors-BYKXB8DF.js";import{u as vr}from"./useUploader-CBNPOY8T.js";import{c as be,d as Pr}from"./transactionsApi-CANA4ntQ.js";import"./missedContributionRetry-D0dCo6_S.js";import"./healthCategoryUi-C2_keODf.js";import{u as Er}from"./policiesApi-DYBxVdNQ.js";import{b as Hr,c as Rr}from"./healthPolicyApi-Dd-t-T9K.js";import{r as Nr,a as Tr}from"./healthPolicyActivation-BCt2rMDw.js";import{f as wr,i as Ir}from"./phone-ouFZPfGU.js";import{i as me}from"./nin-Bkcssw0H.js";import"./vendor-state-BsBVN-fX.js";import"./DropdownPopover-KjBTPKBF.js";import"./other-icon-DC1bN4dP.js";import"./savings-BJUwUGln.js";import"./routes-BR5I3bEX.js";import"./annuity-retirement-C1dZ1QHM.js";import"./health-ped-DAki1cTK.js";import"./professional-indemnity-Cx_HID73.js";import"./property-building-content-BPs_xKUv.js";import"./property-business-assets-DHEXMjWx.js";import"./property-home-content-BS-RQEdB.js";import"./savings-specialized-hA4moY7S.js";import"./savings-targeted-goals-BG697KhM.js";import"./useApiQuery-mQnoCtpJ.js";import"./api-BEJchXjA.js";import"./routes-Dr23NpA-.js";import"./nigerianPhone-B1rv0Wc5.js";const Br=r=>r==null?[]:Array.isArray(r)?r:[r],Ar=r=>{const t=Br(r?.transactions);if(t.length===0)return null;const o=i=>{const l=i.ourReference?.trim();return l||null},s=t.find(i=>o(i)!=null&&be(i.status));if(s)return o(s);for(const i of t){const l=o(i);if(l)return l}return null},Mr=r=>r.success===!0&&be(r.data?.status),h=({label:r,isRequired:t=!1,error:o,children:s})=>e.jsxs(ir,{invalid:!!o,required:t,gap:"6px",children:[e.jsxs(sr,{fontSize:"13px",lineHeight:"19.5px",fontWeight:"normal",letterSpacing:"-0.13px",color:b.fieldLabel,children:[r,t&&e.jsx(ar,{color:c.error[500]})]}),s,o&&e.jsx(nr,{fontSize:"12px",children:o})]}),A=({options:r,value:t,onChange:o,onBlur:s,placeholder:i="Select an option",isDisabled:l=!1,hasError:a=!1,searchable:n=!1})=>e.jsx(or,{options:r,value:t,onChange:o,...s?{onBlur:s}:{},placeholder:i,isDisabled:l,hasError:a,searchable:n,flip:!0,borderRadius:"44px",valueColor:c.text.label,iconColor:b.fieldLabel,triggerProps:{w:"100%",h:"56px",px:"18px",bg:"white",borderColor:y.inputBorder,boxShadow:y.inputShadow,fontSize:"15px",_hover:{borderColor:y.inputBorder}}}),I={h:"56px",px:"18px",bg:"white",border:"1px solid",borderColor:y.inputBorder,borderRadius:"44px",boxShadow:y.inputShadow,fontSize:"15px",color:c.text.label,_placeholder:{color:b.placeholder},_focus:{borderColor:c.orange[500],boxShadow:y.inputShadow}},ee={minH:"96px",px:"18px",py:"16px",bg:"white",border:"1px solid",borderColor:y.inputBorder,borderRadius:"20px",boxShadow:y.inputShadow,fontSize:"15px",lineHeight:"22px",color:c.text.label,resize:"vertical",_placeholder:{color:b.placeholder},_focus:{borderColor:c.orange[500],boxShadow:y.inputShadow}},Or="car_verification",ge=5*1024*1024,Dr=r=>{const t=r.name.split(".").pop()?.toLowerCase();return t&&t.length<=5?t:r.type.includes("png")?"png":"jpg"},kr=({memberIndex:r,policyId:t})=>{const{control:o}=V(),{field:s}=Be({control:o,name:`members.${r}.basic.passportFileUrl`}),i=P.useRef(null),[l,a]=P.useState(!1),{uploadFile:n,getUploadUrl:u,progress:g,resetUploaderState:p}=vr({maxBytes:ge,getAccessToken:()=>$e.getAccessToken()}),d=async f=>{if(f){if(!f.type.startsWith("image/")){E.error("Please choose an image file (JPG or PNG).");return}
1if(f.size>ge){E.error("That photo is larger than 5MB. Please choose a smaller one.");return}a(!0),p();try{const B=`health-passport-${t}-${r+1}-${Date.now()}.${Dr(f)}`,M=await n({file:f,filename:B,mimeType:f.type,contextType:Or,contextId:t}),_=M.url.trim()||(await u(M.key)).url;s.onChange(_),E.success("Passport photo uploaded")}catch(B){E.error(G(B)??"We could not upload that photo. Please try again.")}finally{a(!1),i.current&&(i.current.value="")}}},j=!!s.value?.trim();return e.jsxs(h,{label:"Passport Photograph (optional)",children:[e.jsx("input",{ref:i,type:"file",accept:"image/*",hidden:!0,onChange:f=>void d(f.target.files?.[0])}),e.jsxs(R,{align:"center",gap:"16px",w:"100%",p:"12px",border:"1px dashed",borderColor:y.inputBorder,borderRadius:"16px",bg:"white",children:[e.jsx(R,{boxSize:"64px",flexShrink:0,align:"center",justify:"center",borderRadius:"12px",overflow:"hidden",bg:b.cardBorder,children:l?e.jsx(ie,{size:"sm",color:c.orange[500]}):j?e.jsx(lr,{src:s.value,alt:"Passport photograph",boxSize:"100%",objectFit:"cover"}):e.jsx(T,{color:b.fieldLabel,lineHeight:0,children:e.jsx(Ue,{size:22})})}),e.jsxs(T,{flex:1,minW:0,children:[e.jsx(v,{fontSize:"13px",lineHeight:"19.5px",color:c.text.label,children:l?`Uploading… ${g?Math.round(g.percent):0}%`:j?"Passport photo added":"JPG or PNG, up to 5MB"}),e.jsxs(R,{gap:"12px",mt:"6px",wrap:"wrap",children:[e.jsx(W,{buttonType:"add",type:"button",size:"sm",text:j?"Replace photo":"Upload photo",disabled:l,onClick:()=>i.current?.click()}),j&&!l&&e.jsx(W,{buttonType:"delete",type:"button",size:"sm",text:"Remove",icon:e.jsx(Ge,{}),iconPosition:"left",onClick:()=>s.onChange("")})]})]})]})]})},$r=({memberIndex:r,isReadOnly:t=!1,isPrimary:o=!1,policyId:s})=>{const{register:i,control:l,formState:{errors:a}}=V(),n=a.members?.[r]?.basic,u=t?{readOnly:!0,bg:b.cardBorder,cursor:"not-allowed"}:{},g=new Date,p=_e(g.getDate(),g.getMonth(),g.getFullYear());return e.jsxs($,{align:"stretch",gap:"16px",children:[e.jsxs(F,{templateColumns:{base:"1fr",sm:"1fr 1fr"},gap:"16px",children:[e.jsx(h,{label:"First Name",isRequired:!0,error:n?.firstName?.message,children:e.jsx(w,{...i(`members.${r}.basic.firstName`),placeholder:"John",...I,...u})}),e.jsx(h,{label:"Last Name",isRequired:!0,error:n?.lastName?.message,children:e.jsx(w,{...i(`members.${r}.basic.lastName`),placeholder:"Doe",...I,...u})})]}),e.jsxs(F,{templateColumns:{base:"1fr",sm:"1fr 1fr"},gap:"16px",children:[e.jsx(h,{label:"Gender",isRequired:!0,error:n?.gender?.message,children:e.jsx(H,{control:l,name:`members.${r}.basic.gender`,render:({field:d})=>e.jsx(A,{options:xr,value:d.value??"",onChange:d.onChange,onBlur:d.onBlur,isDisabled:t,hasError:!!n?.gender})})}),e.jsx(h,{label:"Date of Birth",isRequired:!0,error:n?.dateOfBirth?.message,children:e.jsx(H,{control:l,name:`members.${r}.basic.dateOfBirth`,render:({field:d})=>e.jsx(Cr,{value:d.value,onChange:d.onChange,onBlur:d.onBlur,borderRadius:"44px",borderColor:y.inputBorder,hasError:!!n?.dateOfBirth,iconPosition:"right",isDisabled:t,maxDate:p,inputProps:{h:"56px",px:"18px",fontSize:"15px",color:c.text.label}})})})]}),!o&&e.jsx(h,{label:"Phone Number",isRequired:!0,error:n?.phoneNumber?.message,children:e.jsx(w,{...i(`members.${r}.basic.phoneNumber`),type:"tel",inputMode:"tel",autoComplete:"tel",maxLength:14,placeholder:"08000000000",...I})}),e.jsx(kr,{memberIndex:r,policyId:s})]})},_r=q("button"),zr=({categoryId:r,stateId:t,value:o,onChange:s,error:i})=>{const{hospitals:l,isLoading:a,isError:n,refetch:u}=Ze({...r?{typeId:r}:{},...t?{stateCode:t}:{}}),g=!!r&&!!t,p=P.useMemo(()=>l.map(j=>{const f=er(j);return{value:j.id,label:rr(j),...f?{description:f}:{}}}),[l]),d=l.find(j=>j.id===o);return e.jsxs($,{align:"stretch",gap:"12px",children:[e.jsx(h,{label:"Preferred Hospital",isRequired:!0,error:i,children:a?e.jsxs(D,{h:"56px",px:"18px",gap:"10px",border:"1px solid",borderColor:c.border.primary,borderRadius:"44px",bg:"white",children:[e.jsx(ie,{size:"sm",color:c.orange[500]}),e.jsx(v,{fontSize:"14px",color:c.text.tertiary,children:"Loading hospitals…"})]}):e.jsx(A,{placeholder:"Select a hospital",options:p,value:o,onChange:s,isDisabled:!g||l.length===0,hasError:!!i,searchable:!0})}),d&&e.jsxs(D,{gap:"6px",align:"flex-start",children:[e.jsx(k,{as:We,boxSize:"14px",flexShrink:0,mt:"3px",color:c.text.tertiary}),e.jsx(v,{fontSize:"12px",lineHeight:"18px",color:c.text.tertiary,children:tr(d)})]}),!g&&e.jsxs(D,{gap:"6px",align:"flex-start",children:[e.jsx(k,{as:Ve,boxSize:"16px",flexShrink:0,mt:"2px",color:c.orange[500]}),e.jsx(v,{fontSize:"12px",lineHeight:"18px",color:c.orange[500],children:"We could not determine your plan or location, so hospitals cannot be loaded. Please contact support."})]}),g&&n&&e.jsxs(D,{gap:"6px",align:"center",children:[e.jsx(v,{fontSize:"12px",lineHeight:"18px",color:c.orange[500],children:"Could not load hospitals."}),e.jsx(_r,{type:"button",onClick:()=>void u(),fontSize:"12px",fontWeight:"semibold",textDecoration:"underline",color:c.orange[500],cursor:"pointer",children:"Retry"})]}),g&&!a&&!n&&l.length===0&&e.jsx(v,{fontSize:"12px",lineHeight:"18px",color:c.text.tertiary,children:"No hospitals are available for your plan in this state yet."})]})},Fr=({memberIndex:r,isPrimary:t,isKycVerified:o=!1,onGoToKyc:s})=>{const{register:i,control:l,formState:{errors:a}}=V(),n=a.members?.[r]?.identity;return t&&!o?e.jsxs($,{align:"stretch",gap:"16px",children:[e.jsxs(T,{bg:c.orange[500],borderRadius:"12px",p:"16px",children:[e.jsx(v,{fontSize:"13px",lineHeight:"19.5px",fontWeight:"semibold",color:"white",children:"IDENTITY VERIFICATION REQUIRED"}),e.jsx(v,{fontSize:"13px",lineHeight:"19.5px",color:"rgba(255, 255, 255, 0.8)",pt:"4px",children:"Your policy is issued in your verified name, so we cannot accept manually entered details. Complete your NIN verification and we will fill this in for you."})]}),s&&e.jsx(R,{justify:"flex-end",children:e.jsx(W,{type:"button",buttonType:"primary",text:"Verify my identity",onClick:s,w:{base:"100%",sm:"200px"},h:"48px",px:0,fontSize:"13.294px",letterSpacing:"-0.9px",borderRadius:"53px"})})]}):e.jsxs($,{align:"stretch",gap:"16px",children:[e.jsxs(R,{gap:"16px",align:"flex-end",direction:{base:"column",sm:"row"},children:[e.jsx(T,{flex:1,minW:0,w:"100%",children:e.jsx(h,{label:t?"National Identity Number (NIN)":"National Identity Number (NIN) — optional",isRequired:t,error:n?.nin?.message,children:e.jsx(w,{...i(`members.${r}.identity.nin`),inputMode:"numeric",maxLength:11,placeholder:"e.g 12345678901",...I,...t?{readOnly:!0,bg:U.noteBg,cursor:"not-allowed"}:{}})})}),t&&e.jsx(R,{flexShrink:0,align:"center",justify:"center",w:{base:"100%",sm:"auto"},h:"56px",px:"33px",bg:U.noteBg,border:"1px solid",borderColor:U.noteBorder,borderRadius:"44px",color:c.orange[500],fontSize:"14px",lineHeight:"21px",fontWeight:"semibold",children:"Verified"})]}),!t&&e.jsxs(F,{templateColumns:{base:"1fr",sm:"1fr 1fr"},gap:"16px",children:[e.jsx(h,{label:"Marital Status",isRequired:!0,error:n?.maritalStatus?.message,children:e.jsx(H,{control:l,name:`members.${r}.identity.maritalStatus`,render:({field:u})=>e.jsx(A,{options:br,value:u.value??"",onChange:u.onChange,onBlur:u.onBlur,hasError:!!n?.maritalStatus})})}),e.jsx(h,{label:"Relationship to Policy Holder",isRequired:!0,error:n?.relationshipToPolicyHolder?.message,children:e.jsx(H,{control:l,name:`members.${r}.identity.relationshipToPolicyHolder`,render:({field:u})=>e.jsx(A,{options:fr,value:u.value??"",onChange:u.onChange,onBlur:u.onBlur,hasError:!!n?.relationshipToPolicyHolder})})})]})]})},Lr=q("button"),qr=[{label:"Yes",value:!0},{label:"No",value:!1}],re=({value:r,onChange:t,isDisabled:o=!1})=>e.jsx(D,{gap:"16px",w:"100%",children:qr.map(s=>{const i=r===s.value;return e.jsx(Lr,{type:"button",disabled:o,onClick:()=>t(s.value),flex:1,h:"56px",borderRadius:"44px",border:"1px solid",borderColor:i?c.orange[500]:y.inputBorder,bg:i?U.noteBg:"white",boxShadow:y.inputShadow,color:i?c.orange[500]:c.text.label,fontSize:"15px",fontWeight:i?"semibold":"normal",cursor:o?"not-allowed":"pointer",opacity:o&&!i?.5:1,transition:"all 0.15s",children:s.label},s.label)})}),Yr=({memberIndex:r,isPrimary:t=!1})=>{const{register:o,control:s,setValue:i,formState:{errors:l}}=V(),a=Q({control:s,name:`members.${r}.basic.gender`}),n=Q({control:s,name:`members.${r}.medical.hasPreExistingConditions`}),u=Q({control:s,name:`members.${r}.medical.isPregnant`}),g=a?.trim().toLowerCase()==="female",p=l.members?.[r]?.medical;return P.useEffect(()=>{u===!0&&i(`members.${r}
1.medical.recentPregnancy`,!0,{shouldValidate:!0})},[u,r,i]),e.jsxs($,{align:"stretch",gap:"16px",children:[e.jsxs(F,{templateColumns:{base:"1fr",sm:"1fr 1fr"},gap:"16px",children:[e.jsx(h,{label:"Blood Group",isRequired:t,error:p?.bloodGroup?.message,children:e.jsx(H,{control:s,name:`members.${r}.medical.bloodGroup`,render:({field:d})=>e.jsx(A,{options:yr,value:d.value??"",onChange:d.onChange,onBlur:d.onBlur,hasError:!!p?.bloodGroup})})}),e.jsx(h,{label:"Genotype",isRequired:t,error:p?.genotype?.message,children:e.jsx(H,{control:s,name:`members.${r}.medical.genotype`,render:({field:d})=>e.jsx(A,{options:jr,value:d.value??"",onChange:d.onChange,onBlur:d.onBlur,hasError:!!p?.genotype})})})]}),e.jsxs(F,{templateColumns:{base:"1fr",sm:"1fr 1fr"},gap:"16px",children:[e.jsx(h,{label:"Weight (kg)",isRequired:t,error:p?.weightKg?.message,children:e.jsx(w,{...o(`members.${r}.medical.weightKg`),type:"number",placeholder:"e.g 70",...I})}),e.jsx(h,{label:"Height (cm)",isRequired:t,error:p?.heightCm?.message,children:e.jsx(w,{...o(`members.${r}.medical.heightCm`),type:"number",placeholder:"e.g 175",...I})})]}),e.jsx(h,{label:"Do you have any pre-existing conditions?",isRequired:t,error:p?.hasPreExistingConditions?.message,children:e.jsx(H,{control:s,name:`members.${r}.medical.hasPreExistingConditions`,render:({field:d})=>e.jsx(re,{value:d.value,onChange:d.onChange})})}),n===!0&&e.jsx(h,{label:"Pre-existing conditions",isRequired:t,error:p?.preExistingConditions?.message,children:e.jsx(Z,{...o(`members.${r}.medical.preExistingConditions`),placeholder:"e.g. Asthma",...ee})}),e.jsx(h,{label:"Surgical history",isRequired:t,error:p?.surgicalHistory?.message,children:e.jsx(Z,{...o(`members.${r}.medical.surgicalHistory`),placeholder:"e.g. None, or describe past surgeries",...ee})}),e.jsx(h,{label:"General health issues",isRequired:t,error:p?.generalHealthIssues?.message,children:e.jsx(Z,{...o(`members.${r}.medical.generalHealthIssues`),placeholder:"e.g. Mild allergies",...ee})}),g&&e.jsxs(e.Fragment,{children:[e.jsx(h,{label:"Are you currently pregnant?",isRequired:t,error:p?.isPregnant?.message,children:e.jsx(H,{control:s,name:`members.${r}.medical.isPregnant`,render:({field:d})=>e.jsx(re,{value:d.value,onChange:d.onChange})})}),e.jsx(h,{label:u===!0?"Recent pregnancy? (set automatically)":"Recent pregnancy?",isRequired:t,error:p?.recentPregnancy?.message,children:e.jsx(H,{control:s,name:`members.${r}.medical.recentPregnancy`,render:({field:d})=>e.jsx(re,{value:d.value,onChange:d.onChange,isDisabled:u===!0})})}),e.jsx(h,{label:"Pregnancy complications",isRequired:t,error:p?.pregnancyComplication?.message,children:e.jsx(w,{...o(`members.${r}.medical.pregnancyComplication`),placeholder:t?'Enter "None" if none':"Leave blank if none",...I})}),e.jsx(h,{label:"Menstrual cycle history",isRequired:t,error:p?.menstrualCycleHistory?.message,children:e.jsx(H,{control:s,name:`members.${r}.medical.menstrualCycleHistory`,render:({field:d})=>e.jsx(A,{options:Sr,value:d.value??"",onChange:d.onChange,onBlur:d.onBlur,hasError:!!p?.menstrualCycleHistory})})}),e.jsx(h,{label:"Fertility treatment history",isRequired:t,error:p?.fertilityTreatmentHistory?.message,children:e.jsx(w,{...o(`members.${r}.medical.fertilityTreatmentHistory`),placeholder:t?'Enter "None" if none':"Leave blank if none",...I})})]})]})},Ur={identity:"Identity Verification",basic:"Basic Details",medical:"Medical Details"},Gr=({activeMemberIndex:r,isPrimaryActive:t,isKycVerified:o,sectionOrder:s,onGoToKyc:i,policyId:l})=>e.jsx(cr,{multiple:!0,collapsible:!0,defaultValue:[...s],children:e.jsx($,{align:"stretch",gap:"16px",children:s.map((a,n)=>e.jsxs(dr,{value:a,bg:"white",border:"1px solid",borderColor:b.cardBorder,borderRadius:"20px",boxShadow:b.cardShadow,overflow:"hidden",children:[e.jsxs(pr,{px:"24px",py:"20px",gap:"8px",children:[e.jsx(R,{boxSize:"24px",flexShrink:0,align:"center",justify:"center",borderRadius:"full",bg:b.cardBorder,children:e.jsx(v,{fontSize:"11px",lineHeight:"16.5px",fontWeight:"medium",color:c.text.primary,children:n+1})}),e.jsx(v,{flex:1,textAlign:"start",fontSize:"16px",lineHeight:"24px",fontWeight:"medium",color:c.text.primary,children:Ur[a]}),e.jsx(ur,{color:c.text.primary,children:e.jsx(k,{as:Ke,boxSize:"18px"})})]}),e.jsx(hr,{borderTop:"1px solid",borderColor:b.cardBorder,children:e.jsxs(mr,{px:"24px",pt:"16px",pb:"24px",children:[a==="identity"&&e.jsx(Fr,{memberIndex:r,isPrimary:t,isKycVerified:o,onGoToKyc:i}),a==="basic"&&e.jsx($r,{memberIndex:r,isReadOnly:t&&o,isPrimary:t,policyId:l}),a==="medical"&&e.jsx(Yr,{memberIndex:r,isPrimary:t})]})})]},a))})},r),xe=q("button"),Wr=q("span"),Vr=({tabs:r,activeIndex:t,onSelect:o,onAddDependant:s,onRemoveDependant:i})=>e.jsxs(D,{gap:"12px",align:"flex-start",overflowX:"auto",pb:"8px",css:{"&::-webkit-scrollbar":{display:"none"}},children:[r.map((l,a)=>{const n=a===t,u=a>
10&&n&&!!i;return e.jsxs(xe,{type:"button",onClick:()=>o(a),flexShrink:0,display:"flex",alignItems:"center",gap:"8px",h:"48px",px:"25px",borderRadius:"full",border:"1px solid",borderColor:n?c.text.label:b.cardBorder,bg:n?c.text.label:"white",boxShadow:n?"inset 0px 4px 6px rgba(255, 255, 255, 0.32), 0px 2px 2px rgba(0, 0, 0, 0.1)":y.optionShadow,cursor:"pointer",transition:"all 0.15s",children:[l.isComplete&&e.jsx(R,{boxSize:"24px",flexShrink:0,align:"center",justify:"center",borderRadius:"full",children:e.jsx(k,{as:Xe,boxSize:"14px",color:n?"white":c.success[600]})}),e.jsx(v,{fontSize:"14px",lineHeight:"21px",fontWeight:"medium",color:n?"white":c.text.primary,whiteSpace:"nowrap",children:l.label}),u&&e.jsx(Wr,{role:"button","aria-label":`Remove ${l.label}`,display:"inline-flex",alignItems:"center",justifyContent:"center",boxSize:"18px",ms:"2px",borderRadius:"full",bg:"rgba(255, 255, 255, 0.16)",color:"white",_hover:{bg:"rgba(255, 255, 255, 0.28)"},onClick:g=>{g.stopPropagation(),i?.(a)},children:e.jsx(k,{as:Je,boxSize:"12px"})})]},l.label)}),s&&e.jsxs(xe,{type:"button",onClick:s,flexShrink:0,display:"flex",alignItems:"center",gap:"8px",h:"48px",px:"21px",borderRadius:"full",border:"1px dashed",borderColor:b.addTabBorder,color:c.text.primary,cursor:"pointer",transition:"all 0.15s",_hover:{borderColor:c.orange[500],color:c.orange[500]},children:[e.jsx(k,{as:Qe,boxSize:"16px",flexShrink:0}),e.jsx(v,{fontSize:"14px",lineHeight:"21px",whiteSpace:"nowrap",children:"Add Dependant"})]})]}),Kr=({kyc:r,kycApproved:t})=>t&&!!r?.firstName?.trim()&&!!r?.lastName?.trim(),Xr=r=>{const t=r?.trim().toLowerCase();return t==="male"||t==="female"?t:""},Jr=r=>{const t=r?.trim().slice(0,10);return!t||!/^\d{4}-\d{2}-\d{2}$/.test(t)?"":t.split("-").reverse().join("-")},Qr=({member:r,kyc:t})=>({...r,identity:{...r.identity,nin:t.documentNo?.trim()??"",ninVerified:!0},basic:{...r.basic,firstName:t.firstName?.trim()??"",lastName:t.lastName?.trim()??"",gender:Xr(t.gender),dateOfBirth:Jr(t.dateOfBirth)}}),te=r=>r.trim().toUpperCase(),Zr="MEMBER",C=r=>{const t=r?.trim();return t||void 0},et=/^(\d{4})-(\d{2})-(\d{2})$/,rt=/^(\d{2})-(\d{2})-(\d{4})$/,tt=r=>{const t=r.trim();if(!t||et.test(t))return t;const o=rt.exec(t);return o?`${o[3]}-${o[2]}-${o[1]}`:t},ot=r=>{if(r.hasPreExistingConditions!==null)return r.hasPreExistingConditions?C(r.preExistingConditions)??"Yes":"None"},it=r=>r.basic.gender.trim().toLowerCase()==="female",st=(r,t)=>{const o=ot(r);return{...C(r.bloodGroup)?{bloodgroup:r.bloodGroup.trim()}:{},...C(r.genotype)?{genotype:r.genotype.trim()}:{},...C(r.weightKg)?{weight:`${r.weightKg.trim()}kg`}:{},...C(r.heightCm)?{height:`${r.heightCm.trim()}cm`}:{},...o?{preExistingConditions:o}:{},...C(r.surgicalHistory)?{surgicalHistory:r.surgicalHistory.trim()}:{},...C(r.generalHealthIssues)?{generalHealthIssues:r.generalHealthIssues.trim()}:{},...t&&r.isPregnant!==null?{isPregnant:r.isPregnant}:{},...t&&r.recentPregnancy!==null?{recentPregnancy:r.recentPregnancy}:{},...t&&C(r.pregnancyComplication)?{pregnancyComplication:r.pregnancyComplication.trim()}:{},...t&&C(r.menstrualCycleHistory)?{menstrualCycleHistory:r.menstrualCycleHistory.trim()}:{},...t&&C(r.fertilityTreatmentHistory)?{fertilityTreatmentHistory:r.fertilityTreatmentHistory.trim()}:{}}},at=({member:r,primaryMaritalStatus:t})=>{const{isPrimary:o}=r,s=o?t??"":r.identity.maritalStatus;return{firstName:r.basic.firstName.trim(),surName:r.basic.lastName.trim(),...o?{isPrimaryHolder:!0}:{},dateOfBirth:tt(r.basic.dateOfBirth),gender:te(r.basic.gender),maritalStatus:te(s),relation:o?Zr:te(r.identity.relationshipToPolicyHolder),...C(r.basic.phoneNumber)?{phoneNumber:wr(r.basic.phoneNumber.trim())}:{},...C(r.identity.nin)?{nin:r.identity.nin.trim()}:{},...C(r.basic.passportFileUrl)?{passportFileUrl:r.basic.passportFileUrl.trim()}:{},...st(r.medical,it(r))}},nt=({providerId:r,members:t,primaryMaritalStatus:o})=>({providerId:r,dependents:t.map(s=>at({member:s,primaryMaritalStatus:o}))}),lt=L({nin:m(),ninVerified:z(),maritalStatus:m(),relationshipToPolicyHolder:m()}),ct=L({firstName:m(),lastName:m(),gender:m(),dateOfBirth:m(),phoneNumber:m(),passportFileUrl:m()}),dt=L({bloodGroup:m(),genotype:m(),hasPreExistingConditions:z().nullable(),preExistingConditions:m(),weightKg:m(),heightCm:m(),surgicalHistory:m(),generalHealthIssues:m(),isPregnant:z().nullable(),recentPregn
1ancy:z().nullable(),pregnancyComplication:m(),menstrualCycleHistory:m(),fertilityTreatmentHistory:m()}),pt=L({isPrimary:z(),tabLabel:m(),identity:lt,basic:ct,medical:dt}),N=(r,t,o,s)=>{(typeof o=="string"?!o.trim():o===null)&&r.addIssue({code:"custom",message:s,path:t})},ut=[["bloodGroup","Select a blood group"],["genotype","Select a genotype"],["weightKg","Weight is required"],["heightCm","Height is required"],["hasPreExistingConditions","Answer whether you have pre-existing conditions"],["surgicalHistory",'Surgical history is required — enter "None" if none'],["generalHealthIssues",'General health issues are required — enter "None" if none']],ht=[["isPregnant","Answer whether you are currently pregnant"],["recentPregnancy","Answer whether you had a recent pregnancy"],["pregnancyComplication",'Pregnancy complications are required — enter "None" if none'],["menstrualCycleHistory","Select your menstrual cycle history"],["fertilityTreatmentHistory",'Fertility treatment history is required — enter "None" if none']],mt=r=>r.trim().toLowerCase()==="female",gt=L({members:Ae(pt)}).superRefine((r,t)=>{r.members.forEach((o,s)=>{const i=(...a)=>["members",s,...a];N(t,i("basic","firstName"),o.basic.firstName,"First name is required"),N(t,i("basic","lastName"),o.basic.lastName,"Last name is required"),N(t,i("basic","gender"),o.basic.gender,"Select a gender"),N(t,i("basic","dateOfBirth"),o.basic.dateOfBirth,"Date of birth is required");const l=o.basic.dateOfBirth.trim();if(l){const a=ze(l);a==null?t.addIssue({code:"custom",message:"Enter a valid date of birth",path:i("basic","dateOfBirth")}):a>Fe()&&t.addIssue({code:"custom",message:"Date of birth cannot be in the future",path:i("basic","dateOfBirth")})}if(!o.isPrimary){N(t,i("identity","maritalStatus"),o.identity.maritalStatus,"Marital status is required"),N(t,i("identity","relationshipToPolicyHolder"),o.identity.relationshipToPolicyHolder,"Relationship to policy holder is required");const a=o.identity.nin.trim();a&&!me(a)&&t.addIssue({code:"custom",message:"Enter a valid NIN (11 digits)",path:i("identity","nin")});const n=o.basic.phoneNumber.trim();n?Ir(n)||t.addIssue({code:"custom",message:"Enter a valid Nigerian phone number",path:i("basic","phoneNumber")}):t.addIssue({code:"custom",message:"Phone number is required",path:i("basic","phoneNumber")});return}ut.forEach(([a,n])=>{N(t,i("medical",a),o.medical[a],n)}),o.medical.hasPreExistingConditions===!0&&N(t,i("medical","preExistingConditions"),o.medical.preExistingConditions,"Describe your pre-existing conditions"),mt(o.basic.gender)&&ht.forEach(([a,n])=>{N(t,i("medical",a),o.medical[a],n)}),o.identity.ninVerified?me(o.identity.nin)||t.addIssue({code:"custom",message:"Your verified ID is not a valid NIN. Please complete NIN verification.",path:i("identity","nin")}):t.addIssue({code:"custom",message:"Complete your NIN verification to continue",path:i("identity","nin")})})}),xt=["identity","basic","medical"],oe=(r,t)=>({isPrimary:r,tabLabel:t,identity:{nin:"",ninVerified:!1,maritalStatus:"",relationshipToPolicyHolder:""},basic:{firstName:"",lastName:"",gender:"",dateOfBirth:"",phoneNumber:"",passportFileUrl:""},medical:{bloodGroup:"",genotype:"",hasPreExistingConditions:null,preExistingConditions:"",weightKg:"",heightCm:"",surgicalHistory:"",generalHealthIssues:"",isPregnant:null,recentPregnancy:null,pregnancyComplication:"",menstrualCycleHistory:"",fertilityTreatmentHistory:""}}),bt=()=>{const r=Te(),[t]=we(),o=Le(),s=t.get("policyId"),{data:i,isLoading:l}=Er(s??"",{poll:!1}),a=P.useMemo(()=>Nr(i?.data),[i?.data]),n=Kr({kyc:o?.kyc,kycApproved:o?.kycApproved??!1}),{updateActivationDetails:u,isLoading:g}=Hr(),{submitIndividualHealthPolicy:p,isLoading:d}=Rr(),{verifyTransaction:j,isVerifying:f}=Pr(),[B,M]=P.useState(""),[_,se]=P.useState(),K=B||a?.providerId||"",ae=P.useMemo(()=>Ar(i?.data),[i?.data]),ne=Me({resolver:Oe(gt),defaultValues:{members:[oe(!0,"Primary Member")]},mode:"onSubmit"}),{control:fe,handleSubmit:ye,reset:le}=ne,{fields:ce}=De({control:fe,name:"members"}),[Y,je]=P.useState(0),X=a?.noOfDependants??0,de=P.useRef(null);P.useEffect(()=>{if(a==null)return;const S=`${a.policyId}:${X}:${n}`;if(de.current===S)return;de.current=S;const x=oe(!0,"Primary Member");le({members:[n&&o?.kyc?Qr({member:x,kyc:o.kyc}):x,...Array.from({length:X},(O,J)=>oe(!1,`Dependant ${J+1}`))]})},[a,X,n,le,o?.kyc]);const pe=S=>je(S),Se=ce[Y]?.isPrimary??!0,Ce=ce.map((S,x)=>({label:S.tabLabel,isComplete:x<Y})),ve=()=>r(`/${qe.Kyc}`),Pe=()=>r(s?`/${ue.policiesDetail.replace(":id",s)}`:`/${ue.policies}`),Ee=S=>{M(S),se(void 0)},He=S=>{s&&u({policyId:s,payload:nt({providerId:K,members:S.members,...a?.maritalStatus?{primaryMaritalStatus:a.maritalStatus}:{}})},{onSuccess:()=>{p(s,{onSuccess:x=>{const O={submittedPolicy:x.data};r(Tr(s),{replace:!0,state:O})},onError:x=>{E.error(G(x)??"Your details were saved but activation failed. Please contact support.")}})},onError:x=>{E.error(G(x)??"We could not save your member details. Please try again.")}})},Re=S=>{if(s){if(!K){se("Select your preferred hospital to continue"),E.error("Please select a preferred hospital.");return}if(!ae){E.error("No payment found for this policy. Please complete payment before activating.");return}j(ae,{onSuccess:x=>
1{if(!Mr(x)){E.error("Your payment has not been confirmed yet. Please complete payment before activating.");return}He(S)},onError:x=>{E.error(G(x)??"We could not verify your payment. Please try again.")}})}},Ne=S=>{const x=S.members;if(Array.isArray(x)){const O=x.findIndex(J=>J!=null);O>=0&&O!==Y&&pe(O)}E.error("Please review the member details and try again.")};return{policyId:s,isLoadingPolicy:l,activation:a,isKycVerified:n,methods:ne,memberTabs:Ce,activeMemberIndex:Y,isPrimaryActive:Se,sectionOrder:xt,providerId:K,providerError:_,isActivating:f||g||d,goToMember:pe,goToKyc:ve,goBackToPolicy:Pe,setProviderId:Ee,handleActivateClick:()=>{ye(Re,Ne)()}}},ft=q("button"),so=()=>{const{policyId:r,isLoadingPolicy:t,activation:o,isKycVerified:s,methods:i,memberTabs:l,activeMemberIndex:a,isPrimaryActive:n,sectionOrder:u,providerId:g,providerError:p,isActivating:d,goToMember:j,goToKyc:f,goBackToPolicy:B,setProviderId:M,handleActivateClick:_}=bt();return r?t&&o==null?e.jsx(he,{items:[],contentMaxW:"960px",mobileContentOnly:!0,hideGoBack:!0,children:e.jsx(R,{justify:"center",align:"center",minH:"40vh",children:e.jsx(ie,{size:"xl",color:c.orange[500]})})}):e.jsx(he,{items:[],contentMaxW:"960px",mobileContentOnly:!0,hideGoBack:!0,children:e.jsx(Ye,{px:{base:4,md:10,lg:"72px"},py:{base:6,md:12,lg:"84px"},children:e.jsxs(T,{mx:"auto",fontFamily:y.bodyFont,children:[e.jsx(gr,{fontFamily:"heading",fontSize:{base:"26px",md:"32px"},lineHeight:"35.2px",fontWeight:"semibold",color:c.text.label,children:"Member Details"}),e.jsx(v,{fontSize:"15px",lineHeight:"22.5px",color:c.text.primary,pt:"12px",children:"Fill in the details for you and your family members to generate your policy ID."}),e.jsx(T,{pt:"32px",pb:"32px",children:e.jsx(Vr,{tabs:l,activeIndex:a,onSelect:j})}),e.jsx(ke,{...i,children:e.jsx("form",{children:e.jsx(Gr,{activeMemberIndex:a,isPrimaryActive:n,isKycVerified:s,sectionOrder:u,onGoToKyc:f,policyId:r})})}),e.jsxs(T,{mt:"32px",p:"24px",bg:"white",border:"1px solid",borderColor:b.cardBorder,borderRadius:"20px",boxShadow:b.cardShadow,children:[e.jsx(zr,{categoryId:o?.categoryId,stateId:o?.stateId,value:g,onChange:M,error:p}),e.jsx(R,{justify:"flex-end",pt:"24px",children:e.jsx(W,{type:"button",buttonType:"primary",text:"Activate Policy",loading:d,onClick:_,w:{base:"100%",sm:"200px"},h:"48px",px:0,fontSize:"13.294px",letterSpacing:"-0.9px",borderRadius:"53px",border:"0.5px solid rgba(255, 255, 255, 0.14)",boxShadow:b.continueShadow})})]}),e.jsx(T,{mt:"16px",pt:"33px",borderTop:"1px solid",borderColor:b.cardBorder,children:e.jsx(ft,{type:"button",onClick:B,fontSize:"15px",lineHeight:"22.5px",fontWeight:"medium",color:c.text.primary,cursor:"pointer",_hover:{color:c.orange[500]},children:"Back"})})]})})}):e.jsx(Ie,{to:"/policies",replace:!0})};export{so 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.