diff options
Diffstat (limited to 'src/hooks/useFavorites.ts')
| -rw-r--r-- | src/hooks/useFavorites.ts | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/hooks/useFavorites.ts b/src/hooks/useFavorites.ts index fa96211..625ac08 100644 --- a/src/hooks/useFavorites.ts +++ b/src/hooks/useFavorites.ts @@ -10,7 +10,10 @@ const favoriteAppNamesAtom = atomWithStorage<string[]>( jsonStorage, ); -const serialize = (packageNames: string[]) => packageNames.join(','); +const isSameArray = (a: string[], b: string[]): boolean => { + if (a.length !== b.length) return false; + return a.every((item, index) => item === b[index]); +}; export const useFavorites = () => { const [favoriteAppNames, setFavoriteAppNames] = useAtom(favoriteAppNamesAtom); @@ -20,7 +23,7 @@ export const useFavorites = () => { updater: (packageNames: string[]) => Promise<string[]> | string[], ) => { const newNames = [...new Set(await updater(favoriteAppNames))]; - if (serialize(newNames) === serialize(favoriteAppNames)) return newNames; + if (isSameArray(newNames, favoriteAppNames)) return newNames; setFavoriteAppNames(newNames); return newNames; |
