11import { useEffect , useMemo } from 'react' ;
22
3- import type { Track } from '../generated/typings' ;
3+ import type { SortBy , SortOrder , Track } from '../generated/typings' ;
44import {
55 filterTracks ,
66 getSortOrder ,
@@ -15,17 +15,16 @@ import useLibraryStore, { useLibraryAPI } from '../stores/useLibraryStore';
1515 */
1616export default function useFilteredTracks (
1717 tracks : Track [ ] ,
18- enableSort = true ,
18+ sortBy ?: SortBy ,
19+ sortOrder ?: SortOrder ,
1920) : Track [ ] {
2021 const search = useLibraryStore ( ( state ) => stripAccents ( state . search ) ) ;
21- const sortBy = useLibraryStore ( ( state ) => state . sortBy ) ;
22- const sortOrder = useLibraryStore ( ( state ) => state . sortOrder ) ;
2322 const libraryAPI = useLibraryAPI ( ) ;
2423
2524 const filteredTracks = useMemo ( ( ) => {
2625 let searchedTracks = filterTracks ( tracks , search ) ;
2726
28- if ( enableSort ) {
27+ if ( sortBy && sortOrder ) {
2928 // sorting being a costly operation, do it after filtering, ignore it if not needed
3029 searchedTracks = sortTracks (
3130 searchedTracks ,
@@ -35,7 +34,7 @@ export default function useFilteredTracks(
3534 }
3635
3736 return searchedTracks ;
38- } , [ tracks , search , sortBy , sortOrder , enableSort ] ) ;
37+ } , [ tracks , search , sortBy , sortOrder ] ) ;
3938
4039 // Update the footer status based on the displayed tracks
4140 useEffect ( ( ) => {
0 commit comments