(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7492,1125],{4464:function(e,t,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/find-practitioners",function(){return a(4753)}])},3838:function(e,t,a){"use strict";a.d(t,{sN:function(){return n}});var i=a(7066);let n="https://directoryapi.virtualtriage.ai",s=i.Z.create({baseURL:"https://portal.virtualtriage.ca/api/v1",headers:{"Content-Type":"application/json",Accept:"application/json"}});s.interceptors.request.use(e=>{{let t=localStorage.getItem("authToken");t&&(e.headers.Authorization="Bearer ".concat(t))}return e},e=>Promise.reject(e)),s.interceptors.response.use(e=>e,e=>{var t;return(null===(t=e.response)||void 0===t?void 0:t.status)===401&&localStorage.removeItem("authToken"),Promise.reject(e)}),t.ZP=s},3950:function(e,t,a){"use strict";var i=a(5893),n=a(9008),s=a.n(n),r=a(1163);t.Z=e=>{let{title:t="Virtual Triage - Online Doctor Appointments & Healthcare Services UK",description:a="Book online doctor appointments, find GPs, and access healthcare services across the UK. Virtual consultations with licensed practitioners. Book your appointment today.",keywords:n="online doctor UK, GP near me, family doctor UK, virtual consultations, telehealth UK, book doctor appointment, NHS alternative, private GP UK",canonical:l,ogImage:o="https://virtualtriage.ai/assets/og/default.jpg",ogType:c="website",structuredData:d,noindex:p=!1,location:u="UK"}=e,h=(0,r.useRouter)(),m="https://virtualtriage.ai",v=t.includes("Virtual Triage")?t:"".concat(t," | Virtual Triage"),x=l||"".concat(m).concat(h.asPath.split("?")[0]),f=d||{"@context":"https://schema.org","@type":"MedicalBusiness",name:"Virtual Triage",description:"Online healthcare platform connecting patients with licensed medical practitioners across the UK",url:m,logo:"".concat(m,"/assets/Virtual%20Triage.png"),address:{"@type":"PostalAddress",addressCountry:"GB",addressLocality:u},areaServed:{"@type":"Country",name:"United Kingdom"},sameAs:["https://www.facebook.com/virtualtriage","https://www.instagram.com/virtualtriage","https://www.linkedin.com/company/virtualtriage","https://twitter.com/virtualtriage"]};return(0,i.jsxs)(s(),{children:[(0,i.jsx)("title",{children:v}),(0,i.jsx)("meta",{name:"title",content:v}),(0,i.jsx)("meta",{name:"description",content:a}),(0,i.jsx)("meta",{name:"keywords",content:n}),(0,i.jsx)("meta",{name:"robots",content:p?"noindex,nofollow":"index,follow"}),(0,i.jsx)("meta",{name:"language",content:"English"}),(0,i.jsx)("meta",{name:"revisit-after",content:"7 days"}),(0,i.jsx)("meta",{name:"author",content:"Virtual Triage"}),(0,i.jsx)("meta",{name:"geo.region",content:"GB"}),(0,i.jsx)("meta",{name:"geo.placename",content:u}),(0,i.jsx)("link",{rel:"canonical",href:x}),(0,i.jsx)("meta",{property:"og:type",content:c}),(0,i.jsx)("meta",{property:"og:url",content:x}),(0,i.jsx)("meta",{property:"og:title",content:v}),(0,i.jsx)("meta",{property:"og:description",content:a}),(0,i.jsx)("meta",{property:"og:image",content:o}),(0,i.jsx)("meta",{property:"og:site_name",content:"Virtual Triage"}),(0,i.jsx)("meta",{property:"og:locale",content:"en_GB"}),(0,i.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,i.jsx)("meta",{name:"twitter:url",content:x}),(0,i.jsx)("meta",{name:"twitter:title",content:v}),(0,i.jsx)("meta",{name:"twitter:description",content:a}),(0,i.jsx)("meta",{name:"twitter:image",content:o}),(0,i.jsx)("meta",{name:"twitter:site",content:"@virtualtriage"}),(0,i.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(f)}})]})}},8521:function(e,t,a){"use strict";a.d(t,{Z:function(){return h}});var i=a(7294);let n=function(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return t.filter((e,t,a)=>!!e&&""!==e.trim()&&a.indexOf(e)===t).join(" ").trim()},s=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),r=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,a)=>a?a.toUpperCase():t.toLowerCase()),l=e=>{let t=r(e);return t.charAt(0).toUpperCase()+t.slice(1)};var o={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let c=e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1},d=(0,i.createContext)({}),p=()=>(0,i.useContext)(d),u=(0,i.forwardRef)((e,t)=>{var a,s,r;let{color:l,size:d,strokeWidth:u,absoluteStrokeWidth:h,className:m="",children:v,iconNode:x,...f}=e,{size:g=24,strokeWidth:y=2,absoluteStrokeWidth:j=!1,color:N="currentColor",className:b=""}=null!==(a=p())&&void 0!==a?a:{},k=(null!=h?h:j)?24*Number(null!=u?u:y)/Number(null!=d?d:g):null!=u?u:y;return(0,i.createElement)("svg",{ref:t,...o,width:null!==(s=null!=d?d:g)&&void 0!==s?s:o.width,height:null!==(r=null!=d?d:g)&&void 0!==r?r:o.height,stroke:null!=l?l:N,strokeWidth:k,className:n("lucide",b,m),...!v&&!c(f)&&{"aria-hidden":"true"},...f},[...x.map(e=>{let[t,a]=e;return(0,i.createElement)(t,a)}),...Array.isArray(v)?v:[v]])}),h=(e,t)=>{let a=(0,i.forwardRef)((a,r)=>{let{className:o,...c}=a;return(0,i.createElement)(u,{ref:r,iconNode:t,className:n("lucide-".concat(s(l(e))),"lucide-".concat(e),o),...c})});return a.displayName=l(e),a}},2171:function(e,t,a){"use strict";a.d(t,{Z:function(){return i}});let i=(0,a(8521).Z)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},3645:function(e,t,a){"use strict";a.d(t,{Z:function(){return i}});let i=(0,a(8521).Z)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},2126:function(e,t,a){"use strict";a.d(t,{Z:function(){return i}});let i=(0,a(8521).Z)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]])},6127:function(e,t,a){"use strict";a.d(t,{Z:function(){return i}});let i=(0,a(8521).Z)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},9176:function(e,t,a){"use strict";a.d(t,{Z:function(){return i}});let i=(0,a(8521).Z)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]])},4753:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return S}});var i=a(5893),n=a(7294),s=a(1163),r=a(7317),l=a(3950),o=a(9402),c=a(3645),d=a(2126),p=a(9176),u=a(2171),h=a(6127),m=a(8521);let v=(0,m.Z)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]),x=(0,m.Z)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),f=(0,m.Z)("map-pin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]),g=(0,m.Z)("badge-check",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var y=a(2917),j=a(914),N=a(3838),b=a(3109);let k={UK:["London","Manchester","Birmingham","Leeds","Glasgow","Liverpool","Newcastle","Sheffield","Bristol","Edinburgh"]},w=["English","Spanish","Arabic","Urdu","French","German","Russian"],C=["General Practitioner","Dermatologist","Psychiatrist","Cardiologist","Neurologist","Orthopedic Surgeon","Pediatrician","Gastroenterologist","Respiratory Specialist","Rheumatologist","Urologist","ENT Specialist"],_=e=>e?e.toUpperCase():"";var S=()=>{let[e,t]=(0,n.useState)([]),[a,m]=(0,n.useState)(!0),[S,A]=(0,n.useState)(!1),[P,U]=(0,n.useState)(""),L=(0,s.useRouter)(),[R,Z]=(0,n.useState)({total_count:0,page:1,page_size:20,total_pages:0,has_next:!1,has_previous:!1,offset:0,limit:20}),[,E]=(0,n.useState)(1),[T,G]=(0,n.useState)(!1),[I,M]=(0,n.useState)(null),[z,B]=(0,n.useState)(null),[O,K]=(0,n.useState)(null),[D,F]=(0,n.useState)(!1),[q,V]=(0,n.useState)(!0),H=["GPs","Dermatologists","Psychiatrists","Paediatricians"],W=["Skin Rash","Anxiety","Acne","Hypertension","Back Pain"],[Y,J]=(0,n.useState)(0),[X,$]=(0,n.useState)(0),[Q,ee]=(0,n.useState)(!0),[et,ea]=(0,n.useState)(!0),ei=(0,n.useRef)(0);(0,n.useEffect)(()=>{let e=0===Y?H:W;ei.current=0,$(0);let t=setInterval(()=>{ee(!1),setTimeout(()=>{let t=ei.current+1;t>=e.length?(ei.current=0,$(0),ea(!1),setTimeout(()=>{J(e=>(e+1)%2),ea(!0),ee(!0)},380)):(ei.current=t,$(t),ee(!0))},380)},2600);return()=>clearInterval(t)},[Y]);let[en,es]=(0,n.useState)(!1),[er]=(0,n.useState)(null),[el,eo]=(0,n.useState)(null),[ec,ed]=(0,n.useState)(!1),[ep,eu]=(0,n.useState)(null),[eh,em]=(0,n.useState)(null),[ev,ex]=(0,n.useState)(null),[ef,eg]=(0,n.useState)(!1),ey=(0,n.useRef)(null),ej=(0,n.useRef)(null),eN=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e;if(!(window.innerWidth<=768)||!eN.current)return;let t=eN.current,a=t.scrollWidth,i=t.clientWidth,n=0,s=()=>{(n+=1)>=a-i&&(n=0),t.scrollLeft=n,e=requestAnimationFrame(s)},r=ej.current,l=()=>cancelAnimationFrame(e),o=()=>{e=requestAnimationFrame(s)};return r.addEventListener("mouseenter",l),r.addEventListener("mouseleave",o),e=requestAnimationFrame(s),()=>{cancelAnimationFrame(e),r.removeEventListener("mouseenter",l),r.removeEventListener("mouseleave",o)}},[]);let eb=async()=>{A(!0);try{var e,a;let i=await fetch("".concat(N.sN,"/doctors/?limit=20&offset=0")),n=await i.json(),s=(null==n?void 0:null===(e=n.data)||void 0===e?void 0:e.data)||[];t(s),Z((null==n?void 0:null===(a=n.data)||void 0===a?void 0:a.pagination)||R),E(1)}catch(e){console.error("API error:",e)}finally{A(!1),m(!1)}};(0,n.useEffect)(()=>{eb()},[]),(0,n.useEffect)(()=>{if(!z&&!I&&!O&&!D){if(ey.current&&clearTimeout(ey.current),!P.trim()){eb();return}return ey.current=setTimeout(()=>{eS(P)},400),()=>{ey.current&&clearTimeout(ey.current)}}},[P,z,I,O,D]);let ek=async e=>{if(z===e){B(null),eb();return}B(e),M(null),K(null),F(!1),A(!0);try{var a,i;let n=await fetch("".concat(N.sN,"/doctors/specialities/?speciality=").concat(encodeURIComponent(e),"&limit=20&offset=0")),s=await n.json();t((null==s?void 0:null===(a=s.data)||void 0===a?void 0:a.data)||[]),Z((null==s?void 0:null===(i=s.data)||void 0===i?void 0:i.pagination)||R),E(1)}catch(e){t([])}finally{A(!1)}},ew=async e=>{if(I===e){M(null),eb();return}M(e),B(null),K(null),F(!1),A(!0);try{var a,i;let n=await fetch("".concat(N.sN,"/doctors/search/location/?location=").concat(encodeURIComponent(e))),s=await n.json();t((null==s?void 0:null===(a=s.data)||void 0===a?void 0:a.data)||[]),Z((null==s?void 0:null===(i=s.data)||void 0===i?void 0:i.pagination)||R),E(1)}catch(e){t([])}finally{A(!1)}},eC=async e=>{if(O===e){K(null),eb();return}K(e),M(null),B(null),F(!1),A(!0);try{var a,i;let n=await fetch("".concat(N.sN,"/doctors/languages/?language=").concat(encodeURIComponent(e))),s=await n.json();t((null==s?void 0:null===(a=s.data)||void 0===a?void 0:a.data)||[]),Z((null==s?void 0:null===(i=s.data)||void 0===i?void 0:i.pagination)||R),E(1)}catch(e){t([])}finally{A(!1)}},e_=async()=>{if(D){F(!1),eb();return}F(!0),M(null),B(null),K(null),A(!0);try{var e;let a=await fetch("".concat(N.sN,"/doctors/insurance/?insurance=Yes")),i=await a.json(),n=((null==i?void 0:null===(e=i.data)||void 0===e?void 0:e.data)||[]).filter(e=>Array.isArray(e.insurers)&&e.insurers.length>0);t(n),Z({total_count:n.length,page:1,page_size:20,total_pages:Math.ceil(n.length/20),has_next:n.length>20,has_previous:!1,offset:0,limit:20}),E(1)}catch(e){t([])}finally{A(!1)}},eS=async e=>{A(!0);try{var a,i;let n=await fetch("".concat(N.sN,"/doctors/search/?query=").concat(encodeURIComponent(e))),s=await n.json();t((null==s?void 0:null===(a=s.data)||void 0===a?void 0:a.data)||[]),Z((null==s?void 0:null===(i=s.data)||void 0===i?void 0:i.pagination)||R)}catch(e){t([])}finally{A(!1)}},eA=()=>{M(null),B(null),K(null),F(!1),U(""),eb()},eP=I||z||O||D,eU=async()=>{if(ef||!R.has_next)return;eg(!0);let a=e.length;try{var i,n;let e;e=z?"".concat(N.sN,"/doctors/specialities/?speciality=").concat(encodeURIComponent(z),"&limit=20&offset=").concat(a):I?"".concat(N.sN,"/doctors/search/location/?location=").concat(encodeURIComponent(I),"&offset=").concat(a):O?"".concat(N.sN,"/doctors/languages/?language=").concat(encodeURIComponent(O),"&offset=").concat(a):D?"".concat(N.sN,"/doctors/insurance/?insurance=Yes&offset=").concat(a):"".concat(N.sN,"/doctors/?limit=20&offset=").concat(a);let s=await fetch(e),r=await s.json(),l=(null==r?void 0:null===(i=r.data)||void 0===i?void 0:i.data)||[];D&&(l=l.filter(e=>Array.isArray(e.insurers)&&e.insurers.length>0)),t(e=>[...e,...l]),D||Z((null==r?void 0:null===(n=r.data)||void 0===n?void 0:n.pagination)||R)}catch(e){console.error("Load more error:",e)}finally{eg(!1)}},eL=async e=>{if(!e||!e.email){alert("Doctor information is missing. Please try again later.");return}b.Z.reset(),b.Z.eventData.doctor_name=e.full_Name||e.full_name||e.name||"",eo(e),eu(null),ed(!0),em(e._id||e.id);try{let t=await N.ZP.post("/patient/appointment/book-appointment/directory/",{doctor_email:e.email}),a=null==t?void 0:t.data;if(401===t.status||403===t.status||(null==a?void 0:a.status)===!1){localStorage.removeItem("authToken"),localStorage.removeItem("userData");return}(null==a?void 0:a.clinic_id)&&eu(a.clinic_id)}catch(e){var t;console.error("Error resolving clinic_id:",(null===(t=e.response)||void 0===t?void 0:t.data)||e.message)}finally{em(null)}},eR=async e=>{let t=(null==e?void 0:e.username)||(null==e?void 0:e._id)||(null==e?void 0:e.id);if(t&&ev!==t){ex(t);try{let t=await fetch("".concat(N.sN,"/doctors/by-username/").concat(encodeURIComponent(e.username))),a=await t.json(),i=null==a?void 0:a.data;if(!i)return;try{await fetch("".concat(N.sN,"/doctors/profile-viewed/"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({doctor_email:i.email})})}catch(e){}let n=i.username||e.username,s=e._id||e.id,r=n?"/profile/".concat(encodeURIComponent(n)):"/profile/".concat(encodeURIComponent(s));window.scrollTo(0,0),L.push(r)}catch(e){console.error("Error fetching doctor details:",e)}finally{ex(null)}}},eZ=e.filter(e=>{if(!eP||!P)return!0;let t=(e.full_name||e.name||"").toLowerCase(),a=[...Array.isArray(e.speciality)?e.speciality:[]].map(e=>e.toLowerCase()),i=P.toLowerCase();return t.includes(i)||a.some(e=>e.includes(i))});return(0,i.jsxs)("div",{className:"practitioiners-list-container",children:[(0,i.jsx)(l.Z,{title:"Find a Private GP or Specialist UK | Browse & Book Online | Virtual Triage",description:"Browse verified GPs, psychiatrists, dermatologists and more. Filter by specialty, location and availability. Book a private UK doctor appointment online today.",keywords:"find private gp uk, online doctor uk, book gp appointment online, private gp near me, find gp uk, doctor booking online uk, healthcare practitioners uk, gp appointment booking",canonical:"https://virtualtriage.ai/find-practitioners",structuredData:{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://virtualtriage.ai/find-practitioners",url:"https://virtualtriage.ai/find-practitioners",name:"Find Doctors & GPs in the UK | Book Appointments Online",description:"Search and book appointments with private GPs and online doctors across the UK. Filter by specialty, availability, and ratings for a personalized healthcare experience.",isPartOf:{"@id":"https://virtualtriage.ai/"},inLanguage:"en-GB"},{"@type":"SearchResultsPage","@id":"https://virtualtriage.ai/find-practitioners",url:"https://virtualtriage.ai/find-practitioners",name:"Find Doctors and GPs in the UK",description:"Search for private GPs, online doctors, and healthcare practitioners in the UK and book appointments online. Filter by specialty, availability, and more.",potentialAction:{"@type":"SearchAction",target:"https://virtualtriage.ai/find-practitioners?search={search_term_string}","query-input":"required name=search_term_string"}},{"@type":"MedicalBusiness","@id":"https://virtualtriage.ai/find-practitioners",name:"Virtual Triage Doctor Search",description:"Find and book appointments with certified healthcare professionals including private GPs and online doctors across the UK.",serviceArea:{"@type":"Place",name:"United Kingdom"},provider:{"@id":"https://virtualtriage.ai/"},offers:{"@type":"Offer",priceCurrency:"GBP",url:"https://virtualtriage.ai/find-practitioners"}},{"@type":"OfferCatalog",name:"Healthcare Services Offered",itemListElement:[{"@type":"Offer",name:"Private GP Consultation",url:"https://virtualtriage.ai/find-practitioners?search=gp",priceCurrency:"GBP",price:"50.00",eligibleRegion:{"@type":"Place",name:"United Kingdom"}},{"@type":"Offer",name:"Online Doctor Consultation",url:"https://virtualtriage.ai/find-practitioners?search=online+doctor",priceCurrency:"GBP",price:"60.00",eligibleRegion:{"@type":"Place",name:"United Kingdom"}},{"@type":"Offer",name:"ADHD Assessment",url:"https://virtualtriage.ai/find-practitioners?search=adhd+assessment",priceCurrency:"GBP",price:"120.00",eligibleRegion:{"@type":"Place",name:"United Kingdom"}}]}]},location:"UK"}),(0,i.jsx)(r.Z,{}),(0,i.jsx)("section",{className:"vt-trust-banner",ref:ej,children:(0,i.jsxs)("div",{className:"vt-trust-container",ref:eN,children:[(0,i.jsxs)("p",{className:"vt-trust-text",children:[(0,i.jsx)(c.Z,{})," All Doctors GMC Verified"]}),(0,i.jsxs)("p",{className:"vt-trust-text",children:[(0,i.jsx)(d.Z,{})," DSPT & GDPR Compliant"]}),(0,i.jsxs)("p",{className:"vt-trust-text",children:[(0,i.jsx)(p.Z,{})," 20+ Specialists Across 15 Specialties"]}),(0,i.jsxs)("p",{className:"vt-trust-text",children:[(0,i.jsx)(u.Z,{})," UK Registered Platform"]})]})}),(0,i.jsx)("div",{className:"fp-hero-banner",children:(0,i.jsxs)("div",{className:"fp-hero-inner",children:[(0,i.jsx)("p",{className:"fp-hero-sub",children:"Seamless Healthcare"}),(0,i.jsxs)("h1",{className:"fp-hero-heading",children:[(0,i.jsx)("span",{className:"fp-hero-heading-text".concat(et?" fp-hero-word-visible":""),children:0===Y?"Find Verified Doctors":"Helping With"}),(0,i.jsx)("br",{}),(0,i.jsx)("span",{className:"fp-hero-word".concat(Q?" fp-hero-word-visible":""),children:0===Y?H[X]:W[X]})]})]})}),(0,i.jsx)("div",{className:"practitioners-list-header",children:(0,i.jsxs)("div",{className:"pl-header-inner",children:[(0,i.jsxs)("div",{className:"search-bar",children:[(0,i.jsx)(h.Z,{stroke:"#00a3bb",size:18}),(0,i.jsx)("input",{placeholder:"Search doctors or specialty...",value:P,onChange:e=>U(e.target.value)}),(0,i.jsxs)("button",{className:"filter-btn",onClick:()=>G(!0),title:"Open filters",children:[(0,i.jsx)(v,{size:18}),eP&&(0,i.jsx)("span",{className:"filter-active-dot"})]})]}),eP&&(0,i.jsxs)("div",{className:"active-filter-chips",children:[z&&(0,i.jsxs)("span",{className:"filter-chip",children:[z,(0,i.jsx)("button",{onClick:()=>{B(null),eb()},children:(0,i.jsx)(x,{size:12})})]}),I&&(0,i.jsxs)("span",{className:"filter-chip",children:[I,(0,i.jsx)("button",{onClick:()=>{M(null),eb()},children:(0,i.jsx)(x,{size:12})})]}),O&&(0,i.jsxs)("span",{className:"filter-chip",children:[O,(0,i.jsx)("button",{onClick:()=>{K(null),eb()},children:(0,i.jsx)(x,{size:12})})]}),D&&(0,i.jsxs)("span",{className:"filter-chip",children:["Accepts Insurance",(0,i.jsx)("button",{onClick:()=>{F(!1),eb()},children:(0,i.jsx)(x,{size:12})})]}),(0,i.jsx)("button",{className:"clear-all-chip",onClick:eA,children:"Clear all"})]})]})}),(0,i.jsxs)("div",{className:"pl-layout",children:[T&&(0,i.jsx)("div",{className:"pl-sidebar-overlay",onClick:()=>G(!1)}),(0,i.jsxs)("aside",{className:"pl-sidebar".concat(T?" pl-sidebar-open":""),children:[(0,i.jsxs)("div",{className:"pl-sidebar-header",children:[(0,i.jsx)("span",{children:"Filters"}),(0,i.jsx)("button",{className:"pl-sidebar-close",onClick:()=>G(!1),children:(0,i.jsx)(x,{size:20})})]}),eP&&(0,i.jsx)("div",{className:"pl-sidebar-section",children:(0,i.jsx)("button",{className:"pl-sidebar-clear-btn",onClick:()=>{eA(),G(!1)},children:"✕ Clear all filters"})}),(0,i.jsxs)("div",{className:"pl-sidebar-section",children:[(0,i.jsx)("div",{className:"pl-sidebar-title",children:"SPECIALTIES"}),C.map(e=>(0,i.jsx)("button",{className:"pl-sidebar-btn".concat(z===e?" active":""),onClick:()=>{ek(e),G(!1)},children:_(e)},e))]}),(0,i.jsxs)("div",{className:"pl-sidebar-section",children:[(0,i.jsx)("div",{className:"pl-sidebar-title",children:"LOCATION"}),Object.keys(k).map(e=>(0,i.jsxs)("div",{children:[(0,i.jsxs)("button",{className:"pl-sidebar-btn pl-sidebar-btn-expand",onClick:()=>V(e=>!e),children:["UNITED KINGDOM ",(0,i.jsx)("span",{children:q?"▼":"▶"})]}),(0,i.jsx)("div",{className:"pl-sidebar-collapse".concat(q?" open":""),children:k[e].map(e=>(0,i.jsx)("button",{className:"pl-sidebar-btn pl-sidebar-btn-sub".concat(I===e?" active":""),onClick:()=>{ew(e),G(!1)},children:_(e)},e))})]},e))]}),(0,i.jsxs)("div",{className:"pl-sidebar-section",children:[(0,i.jsx)("div",{className:"pl-sidebar-title",children:"INSURANCE"}),(0,i.jsx)("button",{className:"pl-sidebar-btn".concat(D?" active":""),onClick:()=>{e_(),G(!1)},children:"ACCEPT INSURANCE"})]}),(0,i.jsxs)("div",{className:"pl-sidebar-section",children:[(0,i.jsx)("div",{className:"pl-sidebar-title",children:"LANGUAGE"}),w.map(e=>(0,i.jsx)("button",{className:"pl-sidebar-btn".concat(O===e?" active":""),onClick:()=>{eC(e),G(!1)},children:_(e)},e))]})]}),(0,i.jsx)("div",{className:"pl-content",children:(0,i.jsxs)("div",{className:"doctor-list",children:[a||S?(0,i.jsx)("div",{className:"pl-loading-grid",children:[...Array(6)].map((e,t)=>(0,i.jsxs)("div",{className:"pl-skeleton-card",children:[(0,i.jsx)("div",{className:"pl-skeleton-img"}),(0,i.jsxs)("div",{className:"pl-skeleton-lines",children:[(0,i.jsx)("div",{className:"pl-skeleton-line pl-skeleton-line-long"}),(0,i.jsx)("div",{className:"pl-skeleton-line pl-skeleton-line-short"}),(0,i.jsx)("div",{className:"pl-skeleton-line pl-skeleton-line-med"})]})]},t))}):0===eZ.length?(0,i.jsxs)("div",{className:"pl-empty-state",children:[(0,i.jsxs)("svg",{width:"52",height:"52",viewBox:"0 0 24 24",fill:"none",stroke:"#c8d6e0",strokeWidth:"1.5",children:[(0,i.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,i.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),(0,i.jsx)("p",{className:"pl-empty-title",children:"No practitioners found"}),(0,i.jsx)("p",{className:"pl-empty-sub",children:"Try adjusting your filters or search term"}),(0,i.jsx)("button",{className:"pl-empty-reset",onClick:eA,children:"Reset filters"})]}):eZ.map(e=>{var t,a,n,s;let r={id:e._id||e.id,name:e.full_name||e.name,specialty:(Array.isArray(e.speciality)?e.speciality[0]:e.speciality)||"",location:(()=>{let t=Array.isArray(e.locations)&&e.locations[0];if(t){var a,i;let e=null===(a=t.city)||void 0===a?void 0:a.trim(),n=null===(i=t.country)||void 0===i?void 0:i.trim();if(e&&n)return"".concat(e,", ").concat(n);if(e)return e;if(n)return n}return e.location||"UK"})(),expertise:Array.isArray(e.areas_of_expertise)?e.areas_of_expertise:[],experience:e.experience_years,rating:"number"==typeof e.rating?e.rating:(null===(a=e.ratings)||void 0===a?void 0:null===(t=a[0])||void 0===t?void 0:t.Doctor_Rating)||0,image:e.profile_picture_url||"/assets/Virtual%20Triage.png",isAvailable:!0===e.status&&(void 0===e.slots_available||!0===e.slots_available),nextSlot:e.next_available_slot||null,appointmentFee:e.new_appointment_fee||null},l=(null==e?void 0:e.username)||(null==e?void 0:e._id)||(null==e?void 0:e.id),o=ev===l;return(0,i.jsx)("div",{className:"doctor-card".concat(o?" loading":""),onClick:()=>!o&&eR(e),style:{cursor:o?"wait":"pointer",opacity:o?.7:1},children:(0,i.jsxs)("div",{className:"doctor-info",children:[(0,i.jsxs)("div",{className:"top-row",children:[(0,i.jsxs)("div",{className:"top-section-here",children:[(0,i.jsxs)("div",{className:"doctor-img-wrapper",children:[(0,i.jsx)("img",{src:r.image,alt:"doctor",className:"doctor-img",width:"120",height:"120",loading:"lazy"}),r.isAvailable&&(0,i.jsx)("div",{className:"available-badge",title:"Available",children:"✔"})]}),(0,i.jsxs)("div",{className:"doc-info-section",children:[(0,i.jsx)("h3",{children:r.name}),(0,i.jsx)("p",{className:"specialty",children:r.specialty}),(0,i.jsxs)("p",{className:"location",children:[(0,i.jsx)(f,{size:12}),r.location]}),(0,i.jsxs)("p",{className:"location",children:[(0,i.jsx)(g,{size:12}),"Experience: ",r.experience,"+Years"]})]})]}),(0,i.jsxs)("span",{className:"rating",children:[[1,2,3,4,5].map(e=>{let t=0;return"number"==typeof r.rating&&(e<=Math.floor(r.rating)?t=100:e===Math.floor(r.rating)+1&&r.rating%1>=.5&&(t=50)),(0,i.jsxs)("div",{style:{position:"relative",width:"12px",height:"12px",display:"inline-block"},children:[(0,i.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",className:"rating-star-empty",style:{position:"absolute"},children:(0,i.jsx)("path",{d:"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"})}),t>0&&(0,i.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",className:"rating-star-filled",style:{position:"absolute",clipPath:"inset(0 ".concat(100-t,"% 0 0)")},children:(0,i.jsx)("path",{d:"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"})})]},e)}),(0,i.jsx)("span",{className:"rating-value",children:r.rating>0?r.rating.toFixed(1):"0"})]})]}),(0,i.jsxs)("div",{className:"expertise-chips",children:[r.expertise.slice(0,3).map(e=>(0,i.jsx)("span",{className:"expertise-chip",children:e},e)),r.expertise.length>3&&(0,i.jsxs)("span",{className:"expertise-chip expertise-chip-more",children:["+",r.expertise.length-3]})]}),(0,i.jsxs)("div",{className:"bottom-row",children:[(0,i.jsxs)("div",{className:"next-available-section-here",children:[(0,i.jsx)("p",{className:"next-available-title",children:"Next Available:"}),(null===(n=r.nextSlot)||void 0===n?void 0:n.day)&&(null===(s=r.nextSlot)||void 0===s?void 0:s.start)?(0,i.jsx)("span",{className:"time",children:(0,i.jsx)("p",{children:"".concat(r.nextSlot.day,", ").concat(r.nextSlot.start)})}):(0,i.jsx)("p",{style:{color:"#333",fontWeight:"bold",backgroundColor:"#f5d2d2",fontSize:"12px",padding:"5px",borderRadius:"5px",width:"fit-content"},children:"Request for Slot"})]}),(0,i.jsxs)("div",{className:"next-available-section-here",children:[(0,i.jsx)("p",{className:"next-available-title",children:"Fee:"}),r.appointmentFee&&(0,i.jsx)("span",{className:"time",children:(0,i.jsxs)("p",{children:["\xa3",r.appointmentFee]})})]})]}),(0,i.jsxs)("div",{className:"doctor-card-buttons",children:[(0,i.jsx)("button",{className:"book-appointment-btn",onClick:t=>{t.stopPropagation(),eL(e)},children:eh===r.id?"Loading...":"Book"}),(0,i.jsx)("button",{className:"book-btn",onClick:t=>{t.stopPropagation(),eR(e)},children:ev===l?"Loading...":"View"})]})]})},r.id)}),R.has_next&&!a&&!S&&(0,i.jsx)("div",{className:"load-more-container",children:(0,i.jsx)("button",{className:"load-more-btn",onClick:eU,disabled:ef,children:ef?"Loading...":"Load More"})})]})})]}),(0,i.jsx)(o.Z,{}),(0,i.jsx)(y.Z,{isOpen:en,onClose:()=>es(!1),doctorName:null==er?void 0:er.full_name,doctorId:null==er?void 0:er._id}),(0,i.jsx)(j.default,{isOpen:ec,onClose:()=>{ed(!1),eu(null)},clinicId:ep,practitionerEmail:null==el?void 0:el.email,practitionerData:el})]})}},9008:function(e,t,a){e.exports=a(3867)}},function(e){e.O(0,[3365,1651,7066,5373,6664,8900,6658,914,2888,9774,179],function(){return e(e.s=4464)}),_N_E=e.O()}]);