diff --git a/src/utils/collection.ts b/src/utils/collection.ts index 1195398ee..c2b7006b4 100644 --- a/src/utils/collection.ts +++ b/src/utils/collection.ts @@ -1,14 +1,26 @@ import type { Playlist } from 'types/playlist'; const getCategoriesFromPlaylist = (playlist: Playlist) => - playlist.reduce((categories: string[], item) => categories.includes(item.genre) ? categories : categories.concat(item.genre), []) - + playlist.reduce( + (categories: string[], item) => + categories.includes(item.genre) + ? categories + : categories.concat(item.genre), + [], + ); const filterPlaylistCategory = (playlist: Playlist, filter: string) => { - if (!filter) return playlist + if (!filter) return playlist; - return playlist.filter(({ genre }) => genre === filter) + return playlist.filter(({ genre }) => genre === filter); +}; -} +const chunk = (input: T[], size: number) => { + return input?.reduce((arr: T[][], item, idx: number) => { + return idx % size === 0 + ? [...arr, [item]] + : [...arr.slice(0, -1), [...arr.slice(-1)[0], item]]; + }, []); +}; -export { getCategoriesFromPlaylist, filterPlaylistCategory } +export { getCategoriesFromPlaylist, filterPlaylistCategory, chunk };