fix(OnSelectionChangeFunc): pass node and edge type generics #5023

This commit is contained in:
moklick
2025-02-23 18:32:43 +01:00
parent 1f6ac8b197
commit d094ef0581
4 changed files with 20 additions and 16 deletions
@@ -1,10 +1,10 @@
import { useEffect } from 'react';
import { useStoreApi } from './useStore';
import type { OnSelectionChangeFunc } from '../types';
import type { OnSelectionChangeFunc, Node, Edge } from '../types';
export type UseOnSelectionChangeOptions = {
onChange: OnSelectionChangeFunc;
export type UseOnSelectionChangeOptions<NodeType extends Node = Node, EdgeType extends Edge = Edge> = {
onChange: OnSelectionChangeFunc<NodeType, EdgeType>;
};
/**
@@ -45,8 +45,10 @@ export type UseOnSelectionChangeOptions = {
*
* @remarks You need to memoize the passed `onChange` handler, otherwise the hook will not work correctly.
*/
export function useOnSelectionChange({ onChange }: UseOnSelectionChangeOptions) {
const store = useStoreApi();
export function useOnSelectionChange<NodeType extends Node = Node, EdgeType extends Edge = Edge>({
onChange,
}: UseOnSelectionChangeOptions<NodeType, EdgeType>) {
const store = useStoreApi<NodeType, EdgeType>();
useEffect(() => {
const nextOnSelectionChangeHandlers = [...store.getState().onSelectionChangeHandlers, onChange];