StartupMap-India / frontend /src /hooks /useEntityDetail.js
Ram2005's picture
refactor: add useEntityDetail hook
733e788 verified
raw
history blame contribute delete
857 Bytes
import { useState, useCallback } from 'react'
export default function useEntityDetail(isMobile, setSidebarOpen) {
const [selectedEntity, setSelectedEntity] = useState(null)
const handleEntityClick = useCallback(async (slug, onFlyTo) => {
try {
const resp = await fetch(`/api/entities/detail/${slug}`)
const data = await resp.json()
setSelectedEntity(data)
if (data.latitude && data.longitude && onFlyTo) onFlyTo({ lng: data.longitude, lat: data.latitude, zoom: 14 })
if (isMobile && setSidebarOpen) setSidebarOpen(false)
return data
} catch (err) {
console.error('Failed to fetch entity:', err)
return null
}
}, [isMobile, setSidebarOpen])
const handleClose = useCallback(() => setSelectedEntity(null), [])
return { selectedEntity, setSelectedEntity, handleEntityClick, handleClose }
}