// Modern Vet — page components const { useState: useStateP, useEffect: useEffectP, useMemo: useMemoP } = React; // ── HOME ────────────────────────────────────────────────────────── const HomePage = ({ onBook, branch, setBranch }) => { const featuredServices = ["pet-consultation", "vaccinations", "emergency", "spay-neuter", "dentistry", "cardiology", "grooming", "mobile-clinic"].map(s => SERVICES.find(x => x.slug === s)); const featuredVets = VETS.filter(v => v.featured).slice(0, 5); return ( <> {/* HERO */}
Modern Vet — pet care in Dubai
Trusted pet care · since 1995

The vet that stays open,
the team that knows your pet.

Dubai's only 24-hour multi-specialty pet hospital, plus five neighbourhood clinics and a mobile clinic that comes to your door. One record, one team, one phone number — across the city.

WhatsApp us
24/7Al Wasl ER
6Dubai branches
30 yrssince 1995
AEDPublic prices
As reported by the clinic · 120,000+ pet families cared for · 60,000+ surgeries performed · Avian & exotics welcome
{/* SERVICES GRID */}
{featuredServices.map(s => (

{s.name}

{s.short}

{s.priceFrom &&
from AED {s.priceFrom} + VAT
} {s.isEmergency &&
Open now · 24/7
}
))}
See all services
{/* BRANCHES STRIP */}
{BRANCHES.map(b => ( setBranch(b.slug)}>
{b.name} {b.is24 && 24/7}

{b.name}

{b.hoursShort}
{b.address.split(",").slice(0, 2).join(", ")}
))}
{/* WHY MODERN VET — navy section */}
Why Modern Vet

A grown-up hospital, with a neighbourhood-vet bedside manner.

When the worst happens at 2am, you want a hospital. The rest of the time, you want someone who calls your dog by name. We try to be both.

Our story since 1995
{[ ["Open all night, every night", "Our Al Wasl flagship is the only 24-hour multi-specialty pet hospital in the UAE. On-call surgeons, ICU, in-house imaging."], ["One record, six branches", "Visit any of our six Dubai branches — your pet's history, vaccinations and notes travel with them."], ["Specialists in-house", "Cardiology, neurology, oncology, ophthalmology, orthopaedics — we don't refer for the things we should do ourselves."], ["Prices on the website", "Consultation from AED 249 + VAT. Vaccination from AED 349. Surgery tiers listed. No quote-only games."], ["A clinic that comes to you", "The Modern Vet mobile clinic is a fully-equipped consult room and lab on wheels — across Dubai."], ].map(([h, b], i) => (
0{i + 1}

{h}

{b}

))}
{/* VETS TEASER */}
{featuredVets.map(v => (
{v.name}
{v.name}
{v.role}
{v.specialties.slice(0, 2).join(" · ")}
))}
All vets & nurses
{/* PRICING TEASER */}
Transparent pricing

No "call for a quote."
The prices are on the website.

Most Dubai vets won't tell you what a consultation costs until you walk in. We publish a public starting-price list — so you can plan, not negotiate.

See the full price list
{PRICES.slice(0, 5).map(p => (
{p.service} from AED {p.from} + VAT
))} + 6 more, including surgery tiers
{/* MOBILE CLINIC FEATURE */}
Modern Vet mobile clinic Mobile clinic
A clinic that comes to you

For the cat who hates the carrier. The dog who can't take a car ride. The household with five animals.

Our branded mobile clinic is a fully-equipped consult room and mobile lab. Consultations, vaccinations, microchipping, sample collection — all at your door, across Dubai. Same notes, same digital record as in-clinic.

How it works
{/* CTA BAND */}

Need a vet today?

Book online and we'll confirm on WhatsApp within an hour. Or call the line that never closes.

Call 800-VET
); }; // ── SERVICES HUB ────────────────────────────────────────────────── const ServicesPage = ({ onBook }) => { const groups = ["Critical", "Wellness", "Specialist", "Surgery", "Diagnostics", "Convenience"]; return (
Services

Everything pet medicine, in one place.

Sixteen services across wellness, specialist medicine, surgery, diagnostics and emergency care — performed by the same team that wrote your pet's notes.

{groups.map(g => { const items = SERVICES.filter(s => s.group === g); if (!items.length) return null; return (

{g}

{items.map(s => (
{s.name}{s.isEmergency && 24/7}
{s.short}
{s.priceFrom &&
from AED {s.priceFrom}+ VAT
}
))}
); })}
); }; // ── SERVICE DETAIL ──────────────────────────────────────────────── const ServiceDetailPage = ({ slug, onBook, setBookService }) => { const service = SERVICES.find(s => s.slug === slug) || SERVICES[0]; return (
← All services
{service.group}{service.isEmergency && " · 24/7"}

{service.name}

{service.body.what}

{service.priceFrom &&
from AED {service.priceFrom} + VAT
}
{service.flagshipImage &&
{service.name}/
}

What's included

    {service.body.included.map((it, i) =>
  • {it}
  • )}

When your pet might need this

    {service.body.when.map((it, i) =>
  • {it}
  • )}

Not sure if this is what you need?

Send us a quick message on WhatsApp — describe what's going on, and we'll suggest the right next step.

Ask on WhatsApp
); }; // ── BRANCHES INDEX ──────────────────────────────────────────────── const BranchesPage = () => (
Branches

Six clinics in Dubai. One phone number.

Same digital record, same standards. Pick the closest one and book — your history follows you.

{BRANCHES.map(b => (
{b.name}
{b.tag}

{b.name}

{b.blurb}

{b.address}
{b.hours}
View branch
))}
); // ── BRANCH DETAIL ───────────────────────────────────────────────── const BranchDetailPage = ({ slug, onBook, setBookBranch }) => { const branch = BRANCHES.find(b => b.slug === slug) || BRANCHES[0]; const team = (branch.onSiteSpecialists || []).map(s => VETS.find(v => v.slug === s)).filter(Boolean); return (
{branch.name}
← All branches
{branch.tag}

{branch.name}

{branch.is24 &&
Open right now · 24 hours, every day
}

About this branch

{branch.blurb}

Address
{branch.address}
Hours
{branch.hours}
{team.length > 0 && <>

Team at this branch

{team.map(v => (
{v.name}
{v.name}
{v.role}
))}
}
); }; // ── VETS INDEX ──────────────────────────────────────────────────── const VetsPage = () => { const [filter, setFilter] = useStateP("All"); const branches = ["All", ...new Set(VETS.map(v => v.branch))]; const branchName = (slug) => slug === "All" ? "All branches" : BRANCHES.find(b => b.slug === slug)?.name.replace(" Hospital", "").replace(" Clinic", ""); const filtered = VETS.filter(v => filter === "All" || v.branch === filter); return (
The team

Sixteen vets and nurses, on first-name terms.

We hire vets with subspecialty training — so when the case gets unusual, you don't get sent across town. Credentials marked "to verify" are pending client confirmation.

{branches.map(b => ( ))}
{filtered.map(v => (
{v.name}
{v.name}
{v.role}
{v.specialties.slice(0, 2).join(" · ")}
{branchName(v.branch)}
))}
); }; // ── VET DETAIL ──────────────────────────────────────────────────── const VetDetailPage = ({ slug, onBook }) => { const vet = VETS.find(v => v.slug === slug) || VETS[0]; const branch = BRANCHES.find(b => b.slug === vet.branch); const verified = !vet.credentials.startsWith("Credentials"); return (
← All vets & team
{vet.name}
{vet.role}

{vet.name}

{verified ? <> Credentials verified{vet.credentials} : {vet.credentials}}
{vet.bio &&

{vet.bio}

}
Specialties
{vet.specialties.join(" · ")}
{vet.languages &&
Languages
{vet.languages.join(", ")}
} {branch && }
MOCCAE licence
To be supplied by client
); }; // ── PRICES ──────────────────────────────────────────────────────── const PricesPage = ({ onBook }) => (
Transparent pricing

Public price list.

A starting list for our most-asked-about services. All prices are "from" and + VAT — the exact figure depends on your pet's needs, and we'll always tell you before we do anything.

{PRICES.map(p => ( ))}
Service What's included From
{p.service}
{p.group}{p.caveat && ` · ${p.caveat}`}
{p.includes}
AED {p.from.toLocaleString()}
+ VAT

Procedure-to-tier mapping is pending client confirmation. We never charge for a service we haven't agreed with you first.

Ready when you are.

); // ── EMERGENCY ───────────────────────────────────────────────────── const EmergencyPage = () => (
Open right now

If it's an emergency, call us first. Then drive.

Our Al Wasl flagship hospital is open 24 hours a day, every day. A vet will pick up the phone and tell you what to do next.

Call 800-VET WhatsApp the ER

When to come straight in

    {["Trouble breathing or persistent vomiting", "Suspected poisoning or toxic ingestion", "Trauma — falls, road accidents, attacks", "Inability to urinate, collapse, or seizure", "Bleeding that won't stop after 5 minutes", "Bloat — distended abdomen, retching"].map(t =>
  • {t}
  • )}

What we'll do when you arrive

  1. Triage in under 5 minutes. A vet — not just reception — assesses your pet on arrival.
  2. Stabilise. Oxygen, IV access, fluids and pain relief where indicated, before further work-up.
  3. Diagnose. In-house lab, digital X-ray and ultrasound on site. CT and MRI on call.
  4. Treat. ICU monitoring and surgical theatre on site if needed. We'll explain every step.

Where to go

Al Wasl Hospital
Flagship · 24/7

Al Wasl Hospital

Villa #793, Al Wasl Road, Umm Suqeim 1, Dubai

View branch & map
); // ── ABOUT ───────────────────────────────────────────────────────── const AboutPage = () => (
About

Three decades. One conviction:
pets deserve real medicine.

Modern Vet opened its doors in Dubai in 1995. Three decades, six branches and one mobile clinic later, we're still the only 24-hour multi-specialty pet hospital in the UAE.

Al Wasl Hospital
The flagship

Al Wasl, since the beginning.

Our Al Wasl hospital has been on the same street for thirty years. ICU, three surgical suites, in-house imaging and lab, and a team that goes home only when the patients are stable.

{[ ["1995", "Year founded"], ["6", "Dubai branches"], ["24/7", "ER hospital"], ["16+", "Vets & nurses"], ].map(([n, l]) => (
{n}
{l}
))}
Medical care
Medical infrastructure
Clinical protocols
What we believe

Modern medicine. Old-fashioned attention.

{[ ["Tell the truth.", "If we don't know, we'll say so. If the right next step is a referral, we'll arrange it."], ["Charge fairly.", "Public prices, agreed before we act. No surprise bills, no quote-only games."], ["Treat the family.", "Vet medicine is a family decision. We explain every step, in plain English (or Arabic, Russian, or whichever fits)."], ["Stay open.", "When it's the middle of the night and you need help, you should be able to reach a vet. We will pick up."], ].map(([h, p]) => (

{h}

{p}

))}
); // ── CONTACT (small) ─────────────────────────────────────────────── const ContactPage = ({ onBook }) => (
Contact

We're easy to reach.

One number, one WhatsApp, six branches. Pick whichever you prefer.

Call us

800-VET (800-82) · 24/7 for emergencies

WhatsApp

+971 50 630 4573 — usually replies within minutes

); Object.assign(window, { HomePage, ServicesPage, ServiceDetailPage, BranchesPage, BranchDetailPage, VetsPage, VetDetailPage, PricesPage, EmergencyPage, AboutPage, ContactPage });