UNPKG

@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
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; } }); }