27 lines
669 B
JavaScript
27 lines
669 B
JavaScript
import { useState } from "react";
|
|
|
|
const useSearch = (data, query) => {
|
|
const [searchQuery, setSearchQuery] = useState(query);
|
|
|
|
const filteredData = () => {
|
|
if (!searchQuery) {
|
|
return data;
|
|
}
|
|
|
|
return data.filter(
|
|
(item) =>
|
|
item.firstName.toLowerCase().includes(searchQuery.toLowerCase()) ||
|
|
item.middleName?.toLowerCase().includes(searchQuery.toLowerCase()) ||
|
|
item.lastName?.toLowerCase().includes(searchQuery.toLowerCase()) ||
|
|
item.phoneNumber.toLowerCase().includes(searchQuery.toLowerCase())
|
|
);
|
|
};
|
|
|
|
return {
|
|
filteredData: filteredData(),
|
|
setSearchQuery,
|
|
};
|
|
};
|
|
|
|
export default useSearch;
|