chore(lint): resolve react-hooks rule violations

This commit is contained in:
2026-04-08 06:59:36 +02:00
parent a8386742bf
commit 3c1698937e
3 changed files with 12 additions and 19 deletions

View File

@@ -4,7 +4,6 @@ import {
createContext, createContext,
useCallback, useCallback,
useContext, useContext,
useEffect,
useMemo, useMemo,
useState, useState,
type ReactNode, type ReactNode,
@@ -84,12 +83,6 @@ export function CanvasGraphProvider({
[nodes, previewNodeDataOverrides], [nodes, previewNodeDataOverrides],
); );
useEffect(() => {
if (prunedPreviewNodeDataOverrides !== previewNodeDataOverrides) {
setPreviewNodeDataOverrides(prunedPreviewNodeDataOverrides);
}
}, [previewNodeDataOverrides, prunedPreviewNodeDataOverrides]);
const graph = useMemo( const graph = useMemo(
() => () =>
buildGraphSnapshot(nodes, edges, { buildGraphSnapshot(nodes, edges, {

View File

@@ -1,4 +1,4 @@
import { useRef, useCallback, useEffect } from "react"; import { useRef, useCallback, useEffect, useMemo } from "react";
type DebouncedCallback<Args extends unknown[]> = ((...args: Args) => void) & { type DebouncedCallback<Args extends unknown[]> = ((...args: Args) => void) & {
flush: () => void; flush: () => void;
@@ -53,8 +53,8 @@ export function useDebouncedCallback<Args extends unknown[]>(
} }
}, []); }, []);
const debouncedFn = useCallback( return useMemo(() => {
(...args: Args) => { const debouncedCallback = ((...args: Args) => {
argsRef.current = args; argsRef.current = args;
if (timeoutRef.current) clearTimeout(timeoutRef.current); if (timeoutRef.current) clearTimeout(timeoutRef.current);
timeoutRef.current = setTimeout(() => { timeoutRef.current = setTimeout(() => {
@@ -65,13 +65,11 @@ export function useDebouncedCallback<Args extends unknown[]>(
callbackRef.current(...nextArgs); callbackRef.current(...nextArgs);
} }
}, delay); }, delay);
}, }) as DebouncedCallback<Args>;
[delay],
);
const debouncedCallback = debouncedFn as DebouncedCallback<Args>;
debouncedCallback.flush = flush; debouncedCallback.flush = flush;
debouncedCallback.cancel = cancel; debouncedCallback.cancel = cancel;
return debouncedCallback; return debouncedCallback;
}, [cancel, delay, flush]);
} }

View File

@@ -38,8 +38,10 @@ function HookHarness(props: HarnessProps) {
const nodesRef = useRef<RFNode[]>(props.liveNodes ?? props.nodes); const nodesRef = useRef<RFNode[]>(props.liveNodes ?? props.nodes);
const edgesRef = useRef<RFEdge[]>(props.liveEdges ?? props.edges); const edgesRef = useRef<RFEdge[]>(props.liveEdges ?? props.edges);
useEffect(() => {
nodesRef.current = props.liveNodes ?? props.nodes; nodesRef.current = props.liveNodes ?? props.nodes;
edgesRef.current = props.liveEdges ?? props.edges; edgesRef.current = props.liveEdges ?? props.edges;
}, [props.liveEdges, props.liveNodes, props.edges, props.nodes]);
const handlers = useCanvasDeleteHandlers({ const handlers = useCanvasDeleteHandlers({
t: ((key: string, values?: Record<string, unknown>) => t: ((key: string, values?: Record<string, unknown>) =>