Finished Hub ESLINT rule enforcement

This commit is contained in:
PxlLoewe
2025-07-09 23:26:09 -07:00
parent 98ed0cb5ca
commit eec72a51b8
26 changed files with 199 additions and 195 deletions

View File

@@ -1,8 +0,0 @@
import { DependencyList, useEffect } from "react";
import useTimeout from "./useTimeout";
export const useDebounce = (callback: () => void, delay: number, dependencies: DependencyList) => {
const { reset, clear } = useTimeout(callback, delay);
useEffect(reset, [...dependencies, reset]);
useEffect(() => clear, [clear]);
};

View File

@@ -1,30 +0,0 @@
import { useCallback, useEffect, useRef } from "react";
export default function useTimeout(callback: () => void, delay: number) {
const callbackRef = useRef(callback);
const timeoutRef = useRef<NodeJS.Timeout>(null);
useEffect(() => {
callbackRef.current = callback;
}, [callback]);
const set = useCallback(() => {
timeoutRef.current = setTimeout(() => callbackRef.current(), delay);
}, [delay]);
const clear = useCallback(() => {
if (timeoutRef.current) clearTimeout(timeoutRef.current);
}, []);
useEffect(() => {
set();
return clear;
}, [delay, set, clear]);
const reset = useCallback(() => {
clear();
set();
}, [clear, set]);
return { reset, clear, set };
}