From 728b177e7ab1e2ca9bbfe8c6f45d97d0c713eccb Mon Sep 17 00:00:00 2001 From: jeffvli Date: Tue, 27 Dec 2022 14:21:21 -0800 Subject: [PATCH] Adjust list search handler - Prevent re-render when search value does not change --- .../features/albums/components/album-list-header.tsx | 8 ++++---- .../features/songs/components/song-list-header.tsx | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/renderer/features/albums/components/album-list-header.tsx b/src/renderer/features/albums/components/album-list-header.tsx index 8907979a..9044ab16 100644 --- a/src/renderer/features/albums/components/album-list-header.tsx +++ b/src/renderer/features/albums/components/album-list-header.tsx @@ -207,10 +207,10 @@ export const AlbumListHeader = ({ gridRef }: AlbumListHeaderProps) => { ); const handleSearch = debounce((e: ChangeEvent) => { - const updatedFilters = setFilter({ - searchTerm: e.target.value === '' ? undefined : e.target.value, - }); - handleFilterChange(updatedFilters); + const previousSearchTerm = page.filter.searchTerm; + const searchTerm = e.target.value === '' ? undefined : e.target.value; + const updatedFilters = setFilter({ searchTerm }); + if (previousSearchTerm !== searchTerm) handleFilterChange(updatedFilters); }, 500); return ( diff --git a/src/renderer/features/songs/components/song-list-header.tsx b/src/renderer/features/songs/components/song-list-header.tsx index c7c9e0f1..9d9f791f 100644 --- a/src/renderer/features/songs/components/song-list-header.tsx +++ b/src/renderer/features/songs/components/song-list-header.tsx @@ -200,10 +200,10 @@ export const SongListHeader = ({ tableRef }: SongListHeaderProps) => { ); const handleSearch = debounce((e: ChangeEvent) => { - const updatedFilters = setFilter({ - searchTerm: e.target.value === '' ? undefined : e.target.value, - }); - handleFilterChange(updatedFilters); + const previousSearchTerm = page.filter.searchTerm; + const searchTerm = e.target.value === '' ? undefined : e.target.value; + const updatedFilters = setFilter({ searchTerm }); + if (previousSearchTerm !== searchTerm) handleFilterChange(updatedFilters); }, 500); const handleTableColumns = (values: TableColumn[]) => {