fix(stats): strip Season N suffix from AniList title searches (#121)

This commit is contained in:
2026-06-12 01:07:11 -07:00
committed by GitHub
parent 0a384a22c9
commit 94a65416ae
7 changed files with 218 additions and 6 deletions
+13 -5
View File
@@ -1,5 +1,6 @@
import { useState, useEffect, useRef } from 'react';
import { apiClient } from '../../lib/api-client';
import { normalizeAnilistSearchQuery } from '../../lib/anilist-search-query';
interface AnilistMedia {
id: number;
@@ -24,7 +25,7 @@ export function AnilistSelector({
onClose,
onLinked,
}: AnilistSelectorProps) {
const [query, setQuery] = useState(initialQuery);
const [query, setQuery] = useState(() => normalizeAnilistSearchQuery(initialQuery));
const [results, setResults] = useState<AnilistMedia[]>([]);
const [loading, setLoading] = useState(false);
const [linking, setLinking] = useState<number | null>(null);
@@ -33,17 +34,24 @@ export function AnilistSelector({
useEffect(() => {
inputRef.current?.focus();
if (initialQuery) doSearch(initialQuery);
}, []);
const normalizedInitialQuery = normalizeAnilistSearchQuery(initialQuery);
setQuery(normalizedInitialQuery);
setResults([]);
setLoading(false);
setLinking(null);
if (debounceRef.current) clearTimeout(debounceRef.current);
if (normalizedInitialQuery) doSearch(normalizedInitialQuery);
}, [initialQuery, animeId]);
const doSearch = async (q: string) => {
if (!q.trim()) {
const searchQuery = normalizeAnilistSearchQuery(q);
if (!searchQuery) {
setResults([]);
return;
}
setLoading(true);
try {
const data = await apiClient.searchAnilist(q.trim());
const data = await apiClient.searchAnilist(searchQuery);
setResults(data);
} catch {
setResults([]);