Skip to content

Commit

Permalink
Fixed duplicated search result name for series and movies (#2682)
Browse files Browse the repository at this point in the history
  • Loading branch information
anderson-oki authored Sep 25, 2024
1 parent 5e08898 commit dd92f40
Showing 1 changed file with 32 additions and 9 deletions.
41 changes: 32 additions & 9 deletions frontend/src/components/Search.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { useNavigate } from "react-router-dom";
import { Autocomplete, ComboboxItem, OptionsFilter, Text } from "@mantine/core";
import { faSearch } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { chain, includes } from "lodash";
import { useServerSearch } from "@/apis/hooks";
import { useDebouncedValue } from "@/utilities";

Expand All @@ -15,23 +16,45 @@ function useSearch(query: string) {
const debouncedQuery = useDebouncedValue(query, 500);
const { data } = useServerSearch(debouncedQuery, debouncedQuery.length >= 0);

const duplicates = chain(data)
.groupBy((item) => `${item.title} (${item.year})`)
.filter((group) => group.length > 1)
.map((group) => `${group[0].title} (${group[0].year})`)
.value();

return useMemo<SearchResultItem[]>(
() =>
data?.map((v) => {
let link: string;
if (v.sonarrSeriesId) {
link = `/series/${v.sonarrSeriesId}`;
} else if (v.radarrId) {
link = `/movies/${v.radarrId}`;
} else {
const { link, displayName } = (() => {
const hasDuplicate = includes(duplicates, `${v.title} (${v.year})`);

if (v.sonarrSeriesId) {
return {
link: `/series/${v.sonarrSeriesId}`,
displayName: hasDuplicate
? `${v.title} (${v.year}) (S)`
: `${v.title} (${v.year})`,
};
}

if (v.radarrId) {
return {
link: `/movies/${v.radarrId}`,
displayName: hasDuplicate
? `${v.title} (${v.year}) (M)`
: `${v.title} (${v.year})`,
};
}

throw new Error("Unknown search result");
}
})();

return {
value: `${v.title} (${v.year})`,
value: displayName,
link,
};
}) ?? [],
[data],
[data, duplicates],
);
}

Expand Down

0 comments on commit dd92f40

Please sign in to comment.