import { useState, useMemo } from "react";

export function useZoekfilter<T>(
  items: T[],
  searchFn: (item: T, term: string) => boolean
) {
  const [zoekterm, setZoekterm] = useState("");
  const gefilterd = useMemo(
    () => (zoekterm ? items.filter((i) => searchFn(i, zoekterm)) : items),
    // eslint-disable-next-line react-hooks/exhaustive-deps
    [items, zoekterm]
  );
  return { gefilterd, zoekterm, setZoekterm };
}
