@matthewgapp/solidjs-flow
Version:
React Flow - A highly customizable React library for building node-based editors and interactive flow charts.
30 lines (25 loc) • 1.05 kB
text/typescript
import { errorMessages } from '@xyflow/system';
import type { EdgeTypes, NodeTypes } from '../../types';
import { useStoreApi } from '../../hooks/useStore';
import { createEffect } from 'solid-js';
import { useRef } from '../../utils/hooks';
const emptyTypes = {};
/*
* This hook warns the user if node or edgeTypes change.
*/
export function useNodeOrEdgeTypesWarning(nodeOrEdgeTypes?: () => NodeTypes | undefined): void;
export function useNodeOrEdgeTypesWarning(nodeOrEdgeTypes?: () => EdgeTypes | undefined): void;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function useNodeOrEdgeTypesWarning(nodeOrEdgeTypes: () => NodeTypes | EdgeTypes | undefined = () => emptyTypes): any {
const updateCount = useRef(0);
const store = useStoreApi();
createEffect(() => {
const _types = nodeOrEdgeTypes();
if (process.env.NODE_ENV === 'development') {
if (updateCount.current > 1) {
store.onError.get()?.('002', errorMessages['error002']());
}
updateCount.current += 1;
}
});
}