Skip to content

Commit

Permalink
⚡ - bug: fix an issue where too many API calls were made
Browse files Browse the repository at this point in the history
  • Loading branch information
svenvandescheur committed Jun 17, 2024
1 parent b28198b commit 95381fa
Showing 1 changed file with 9 additions and 26 deletions.
35 changes: 9 additions & 26 deletions frontend/src/pages/destructionlist/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
TypedField,
formatMessage,
} from "@maykin-ui/admin-ui";
import { useEffect, useState } from "react";
import { useEffect, useRef, useState } from "react";
import { useNavigation, useSearchParams } from "react-router-dom";

import { ZaaktypeChoice, listZaaktypeChoices } from "../../lib/api/private";
Expand Down Expand Up @@ -34,13 +34,16 @@ export function useDataGridProps(
): { props: DataGridProps; error: unknown } {
const { state } = useNavigation();
const [searchParams, setSearchParams] = useSearchParams();
const [params, setParams] = useState<URLSearchParams>(searchParams);
const [errorState, setErrorState] = useState<unknown>();
const debouncedParams = useDebounce(params, 10);

useEffect(() => {
setSearchParams(debouncedParams);
}, [debouncedParams]);
const timeoutRef = useRef<NodeJS.Timeout>();
const setParams = (params: URLSearchParams) => {
const handle = () => {
setSearchParams(params);
};
clearTimeout(timeoutRef.current);
setTimeout(handle, 10);
};

//
// List available zaaktype choices.
Expand Down Expand Up @@ -208,26 +211,6 @@ export function useDataGridProps(
};
}

/**
* Denounces update of `value` with `delay`ms
* @param value
* @param delay
*/
export function useDebounce<T>(value: T, delay: number) {
const [debouncedValue, setDebouncedValue] = useState<T>();
let handler: NodeJS.Timeout | undefined = undefined;

useEffect(() => {
if (handler && JSON.stringify(value) === JSON.stringify(debouncedValue)) {
return;
}
handler = setTimeout(() => setDebouncedValue(value), delay);
return () => clearTimeout(handler);
}, [value, delay]);

return debouncedValue;
}

/**
* Returns base fields for DataGrid components.
* @param searchParams
Expand Down

0 comments on commit 95381fa

Please sign in to comment.