dispatchInteraction('product_hover', hotel.id)}
+ >
+
+ Image
+
+
+
+
{hotel.name}
+
{hotel.roomType}
+
+ {hotel.checkIn} - {hotel.checkOut}
+
+
+ {hotel.amenities.map((a) => (
+
+ ))}
+
+ {hotel.refundable && (
+
Free cancellation
+ )}
+
+
+
+
+
+ ${hotel.pricePerNight * hotel.nights} total for {hotel.nights} night{hotel.nights > 1 ? 's' : ''}
+
+
+
+ );
+}
diff --git a/web/src/components/ui/Navigation.tsx b/web/src/components/ui/Navigation.tsx
new file mode 100644
index 0000000..47753d6
--- /dev/null
+++ b/web/src/components/ui/Navigation.tsx
@@ -0,0 +1,48 @@
+'use client';
+
+import Link from 'next/link';
+import { usePathname } from 'next/navigation';
+import type { EventName } from '@/lib/events';
+
+const dispatchInteraction = (eventName: EventName, metadata?: Record