Skip to content

Commit 97c0143

Browse files
committed
refactor search function
1 parent 263dfa4 commit 97c0143

File tree

3 files changed

+17
-16
lines changed

3 files changed

+17
-16
lines changed

Diff for: components/blog/SearchBar.js

+2-13
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,10 @@
11
import styles from '@/styles/SearchBar.module.scss';
22
import { useRef } from 'react';
33

4-
const SearchBar = ({ items, setSearchTerm, setSearchResults }) => {
4+
const SearchBar = ({ setSearchTerm }) => {
55
const searchInput = useRef(null);
66
const search = () => {
7-
const searchTerm = searchInput.current.value;
8-
if (!searchTerm) return setSearchResults(null);
9-
const results = items.filter(
10-
post =>
11-
post.title.toLowerCase().includes(searchTerm.toLowerCase()) ||
12-
post.content.toLowerCase().includes(searchTerm.toLowerCase()) ||
13-
post.tagList.some(tag =>
14-
tag.toLowerCase().includes(searchTerm.toLowerCase())
15-
)
16-
);
17-
setSearchResults(results);
18-
setSearchTerm(searchTerm);
7+
setSearchTerm(searchInput.current.value);
198
};
209
return (
2110
<div className={styles.searchBar}>

Diff for: pages/blog/index.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,18 @@ import Title from '@/components/snippets/Title';
55
import styles from '@/styles/Blog.module.scss';
66
import { blogRevalidate } from '@/utils/config';
77
import { tagToHeading } from '@/utils/blogCategories';
8+
import { blogSearch } from '@/utils/search';
89

910
export default function Blog({ posts }) {
1011
const [searchResults, setSearchResults] = useState(null);
11-
const [searchTerm, setSearchTerm] = useState('temp');
12+
const [searchTerm, setSearchTerm] = useState('');
1213
const getPostsByTag = tag => {
1314
return posts.filter(post => post.tagList.includes(tag));
1415
};
1516

1617
useEffect(() => {
17-
console.log('search result', searchResults);
18-
}, [searchResults]);
18+
setSearchResults(blogSearch(posts, searchTerm));
19+
}, [searchTerm]);
1920

2021
return (
2122
<>

Diff for: utils/search.js

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
export const blogSearch = (posts, searchTerm) => {
2+
if (!searchTerm) return null;
3+
return posts.filter(
4+
post =>
5+
post.title.toLowerCase().includes(searchTerm.toLowerCase()) ||
6+
post.content.toLowerCase().includes(searchTerm.toLowerCase()) ||
7+
post.tagList.some(tag =>
8+
tag.toLowerCase().includes(searchTerm.toLowerCase())
9+
)
10+
);
11+
};

0 commit comments

Comments
 (0)