refactor(react): add generics to useStoreApi

This commit is contained in:
moklick
2024-02-19 10:45:48 +01:00
parent 7bc9558631
commit 07ddd97650
4 changed files with 12 additions and 10 deletions
+7 -4
View File
@@ -1,9 +1,10 @@
import { useContext, useMemo } from 'react';
import { useStoreWithEqualityFn as useZustandStore } from 'zustand/traditional';
import { UseBoundStoreWithEqualityFn, useStoreWithEqualityFn as useZustandStore } from 'zustand/traditional';
import { errorMessages } from '@xyflow/system';
import StoreContext from '../contexts/RFStoreContext';
import type { ReactFlowState } from '../types';
import type { Edge, Node, ReactFlowState } from '../types';
import { StoreApi } from 'zustand';
const zustandErrorMessage = errorMessages['error001']();
@@ -32,8 +33,10 @@ function useStore<StateSlice = unknown>(
return useZustandStore(store, selector, equalityFn);
}
function useStoreApi() {
const store = useContext(StoreContext);
function useStoreApi<NodeType extends Node = Node, EdgeType extends Edge = Edge>() {
const store = useContext(StoreContext) as UseBoundStoreWithEqualityFn<
StoreApi<ReactFlowState<NodeType, EdgeType>>
> | null;
if (store === null) {
throw new Error(zustandErrorMessage);