Compare commits

..

No commits in common. "0ada5c47351fa53b4a968b7ae1f52e7efee2a891" and "fe9a985466935aa247f76d317c1254c19f77c3a7" have entirely different histories.

View File

@ -38,12 +38,12 @@ const mapContainerStyle = {
const defaultCenter = { lat: 12.9716, lng: 77.5946 };
export function DailyLogMap({
latitude,
export function DailyLogMap({
latitude,
longitude,
showStoreList = false
}: {
latitude?: number | string | null;
}: {
latitude?: number | string | null;
longitude?: number | string | null;
showStoreList?: boolean;
}) {
@ -90,13 +90,13 @@ export function DailyLogMap({
useEffect(() => {
// If coords provided in props, use them
if (latitude && longitude && String(latitude).trim() !== '—' && String(longitude).trim() !== '—') {
const lat = Number(latitude);
const lng = Number(longitude);
if (!isNaN(lat) && !isNaN(lng)) {
setUserLocation({ lat, lng });
fetchNearestStores(lat, lng);
return;
}
const lat = Number(latitude);
const lng = Number(longitude);
if (!isNaN(lat) && !isNaN(lng)) {
setUserLocation({ lat, lng });
fetchNearestStores(lat, lng);
return;
}
}
// Otherwise fallback to whatever tactic used for mobile
@ -125,12 +125,12 @@ export function DailyLogMap({
const bounds = new window.google.maps.LatLngBounds();
bounds.extend(userLocation);
map.fitBounds(bounds);
const listener = window.google.maps.event.addListener(map, 'idle', () => {
if (map.getZoom()! > 15) {
map.setZoom(15);
}
window.google.maps.event.removeListener(listener);
if (map.getZoom()! > 15) {
map.setZoom(15);
}
window.google.maps.event.removeListener(listener);
});
}
}, [userLocation]);
@ -232,24 +232,24 @@ export function DailyLogMap({
{showStoreList && (
<div className="mt-4 p-5 flex flex-col gap-4 bg-[var(--tiles-card-bg)] rounded-xl border border-slate-200">
<h3 className="font-bold text-slate-800 text-sm m-0 flex items-center gap-2 uppercase tracking-wider">
<MapPin size={16} className="text-slate-500" /> Nearby Stores
</h3>
<div className="flex flex-col gap-3">
{stores.length > 0 ? (
stores.map((store) => (
<div key={store.store_code} className="flex flex-col p-3 rounded-lg border border-slate-100 bg-slate-50 hover:bg-slate-100 transition-colors cursor-pointer" onClick={() => setSelectedStore(store)}>
<span className="font-bold text-slate-800 text-sm">{store.business_name}</span>
<span className="text-xs text-slate-500">{store.store_code}</span>
{store.distance_km != null && (
<span className="text-xs text-[#1b37a5] font-semibold mt-1">{store.distance_km.toFixed(2)} km away</span>
)}
</div>
))
) : (
<span className="text-sm text-slate-400 italic">No nearby stores found.</span>
)}
</div>
<h3 className="font-bold text-slate-800 text-sm m-0 flex items-center gap-2 uppercase tracking-wider">
<MapPin size={16} className="text-slate-500" /> Nearby Stores
</h3>
<div className="flex flex-col gap-3">
{stores.length > 0 ? (
stores.map((store) => (
<div key={store.store_code} className="flex flex-col p-3 rounded-lg border border-slate-100 bg-slate-50 hover:bg-slate-100 transition-colors cursor-pointer" onClick={() => setSelectedStore(store)}>
<span className="font-bold text-slate-800 text-sm">{store.business_name}</span>
<span className="text-xs text-slate-500">{store.store_code}</span>
{store.distance_km != null && (
<span className="text-xs text-[#1b37a5] font-semibold mt-1">{store.distance_km.toFixed(2)} km away</span>
)}
</div>
))
) : (
<span className="text-sm text-slate-400 italic">No nearby stores found.</span>
)}
</div>
</div>
)}
</div>