mosaicmap/hooks/use-map-zoom.ts
2025-07-17 22:57:07 +08:00

28 lines
654 B
TypeScript

import { useState, useCallback } from 'react'
import { useMap } from '@/app/map-context'
export function useMapZoom() {
const [currentZoom, setCurrentZoom] = useState(11)
const { zoomTo, zoomIn, zoomOut, isMapReady } = useMap()
const zoomToLocation = useCallback((zoom: number) => {
zoomTo(zoom)
setCurrentZoom(zoom)
}, [zoomTo])
const _zoomIn = useCallback(() => {
zoomIn()
}, [zoomIn])
const _zoomOut = useCallback(() => {
zoomOut()
}, [zoomOut])
return {
currentZoom,
zoomToLocation,
zoomIn: _zoomIn,
zoomOut: _zoomOut,
isMapReady
}
}