import {useState, useMemo} from "react";
import Input from "@/components/Low/Input";
import {search} from "@/utils/search";

export function useListSearch<T>(fields: string[][], rows: T[]) {
	const [text, setText] = useState("");

	const renderSearch = () => <Input label="Search" type="text" name="search" onChange={setText} placeholder="Enter search text" value={text} />;

	const updatedRows = useMemo(() => {
		if (text.length > 0) return search(text, fields, rows);
		return rows;
	}, [fields, rows, text]);

	return {
		text,
		rows: updatedRows,
		renderSearch,
	};
}
