Files
xyflow/packages/react/src/hooks/useOnViewportChange.ts
T

29 lines
703 B
TypeScript

import { useEffect } from 'react';
import type { OnViewportChange } from '@xyflow/system';
import { useStoreApi } from './useStore';
export type UseOnViewportChangeOptions = {
onStart?: OnViewportChange;
onChange?: OnViewportChange;
onEnd?: OnViewportChange;
};
function useOnViewportChange({ onStart, onChange, onEnd }: UseOnViewportChangeOptions) {
const store = useStoreApi();
useEffect(() => {
store.setState({ onViewportChangeStart: onStart });
}, [onStart]);
useEffect(() => {
store.setState({ onViewportChange: onChange });
}, [onChange]);
useEffect(() => {
store.setState({ onViewportChangeEnd: onEnd });
}, [onEnd]);
}
export default useOnViewportChange;