/* global React, ReactDOM */ const { useState: useStateA, useEffect: useEffectA } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "displayFont": "Fraunces", "bodyFont": "Inter Tight", "accent": "#B5694F", "vetColor": "#1E2A78", "showEmergencyPill": true }/*EDITMODE-END*/; const VET_DEEP_MAP = { '#1E2A78': '#0B1454', '#1F3A5F': '#0B2240', '#0E1A2E': '#040A18', '#1F4F3A': '#0E2F22', }; function App() { const [route, setRouteState] = useStateA("home"); const [location, setLocation] = useStateA("jumeirah"); const [vetSlug, setVetSlug] = useStateA(null); const [tweaks, setTweak] = window.useTweaks(TWEAK_DEFAULTS); function setRoute(r) { setRouteState(r); window.scrollTo({ top: 0, behavior: 'instant' }); } // apply tweak CSS variables useEffectA(() => { const root = document.documentElement.style; root.setProperty('--font-display', `"${tweaks.displayFont}", "Times New Roman", serif`); root.setProperty('--font-body', `"${tweaks.bodyFont}", "Helvetica Neue", Arial, sans-serif`); root.setProperty('--vet', tweaks.vetColor); root.setProperty('--vet-deep', VET_DEEP_MAP[tweaks.vetColor] || '#0B1454'); root.setProperty('--care', tweaks.accent); }, [tweaks]); const isObjectRoute = typeof route === 'object'; const routeName = isObjectRoute ? route.type : route; function openVet(slug) { setVetSlug(slug); } function closeVet() { setVetSlug(null); } return (
{route === "home" && ( )} {route === "services" && ( )} {isObjectRoute && route.type === "service" && ( )} {route === "team" && ( )} {route === "locations" && ( )} {isObjectRoute && route.type === "location" && ( )} {route === "emergency" && ( )} {route === "about" && ( )} {route === "book" && ( )}
{tweaks.showEmergencyPill !== false && } {vetSlug && } setTweak('displayFont', v)} options={['Fraunces', 'Playfair Display', 'Inter Tight']} /> setTweak('bodyFont', v)} options={['Inter Tight', 'Inter', 'Manrope', 'DM Sans']} /> setTweak('vetColor', v)} options={['#1E2A78', '#1F3A5F', '#0E1A2E', '#1F4F3A']} /> setTweak('accent', v)} options={['#B5694F', '#6B8A6F', '#C29435', '#8E3349']} /> setTweak('showEmergencyPill', v)} />
); } ReactDOM.createRoot(document.getElementById('root')).render();