/
redly
/
reactposts
Обзор
Документация
Войти
/
redly
/
reactposts
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/hooks/UsePosts.tsx
29 строк
816 B
Redlyweb
feat: add search, pagination, sort, auth with useContext
26 июн 2024, 11:45
26 июн 2024, 11:45
840acc1
Код
Авторство
О чём код?
import { useMemo } from "react"; import { Posts } from "../pages/PostsPage"; export const useSortedPosts = (posts: Posts[], selectedSortType: string) => { const sortedPosts = useMemo(() => { if (selectedSortType) { return [...posts].sort((a, b) => (a as any)[selectedSortType].localeCompare((b as any)[selectedSortType]) ); } return posts; }, [selectedSortType, posts]); return sortedPosts }; export const usePosts = ( posts: Posts[], selectedSortType: string, search: string ) => { const sortedPosts = useSortedPosts(posts, selectedSortType); const sortedAndSearchedPosts = useMemo(() => { return sortedPosts.filter((post) => post.title.toLowerCase().includes(search.toLowerCase()) ); }, [sortedPosts, search]); return sortedAndSearchedPosts; };