Files
xyflow/packages/react/src/hooks/useViewport.ts
T
2023-12-19 12:36:49 +01:00

26 lines
579 B
TypeScript

import { shallow } from 'zustand/shallow';
import type { Viewport } from '@xyflow/system';
import { useStore } from '../hooks/useStore';
import type { ReactFlowState } from '../types';
const viewportSelector = (state: ReactFlowState) => ({
x: state.transform[0],
y: state.transform[1],
zoom: state.transform[2],
});
/**
* Hook for getting the current viewport from the store.
*
* @public
* @returns The current viewport
*/
function useViewport(): Viewport {
const viewport = useStore(viewportSelector, shallow);
return viewport;
}
export default useViewport;