mirror of
https://github.com/myfatemi04/wheelshare-frontend.git
synced 2025-04-21 03:10:17 -04:00
25 lines
682 B
TypeScript
25 lines
682 B
TypeScript
import { useState, useEffect, useCallback } from 'react';
|
|
import getPlaceDetails, { PlaceDetails } from '../lib/getPlaceDetails';
|
|
import useThrottle from './useThrottle';
|
|
|
|
export default function usePlace(placeId: string | null) {
|
|
const [placeDetails, setPlaceDetails] = useState<PlaceDetails | null>(null);
|
|
|
|
const updatePlaceDetails = useCallback(() => {
|
|
if (placeId == null) {
|
|
setPlaceDetails(null);
|
|
} else {
|
|
getPlaceDetails(placeId).then(setPlaceDetails);
|
|
}
|
|
}, [placeId]);
|
|
|
|
const updatePlaceDetailsThrottled = useThrottle(updatePlaceDetails, 500);
|
|
|
|
useEffect(updatePlaceDetailsThrottled, [
|
|
placeId,
|
|
updatePlaceDetailsThrottled,
|
|
]);
|
|
|
|
return placeDetails;
|
|
}
|