fix: supprime le layout shift des boutons qBittorrent au chargement

La config qBittorrent est maintenant récupérée côté serveur et passée
en prop au QbittorrentProvider, évitant le fetch client qui causait
l'apparition tardive des boutons de téléchargement.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-27 08:38:57 +01:00
parent 59f9a657a4
commit f5ddeb461b
5 changed files with 29 additions and 11 deletions

View File

@@ -6,17 +6,19 @@ import { useTranslation } from "@/lib/i18n/context";
const QbConfigContext = createContext(false);
export function QbittorrentProvider({ children }: { children: ReactNode }) {
const [configured, setConfigured] = useState(false);
export function QbittorrentProvider({ children, initialConfigured }: { children: ReactNode; initialConfigured?: boolean }) {
const [configured, setConfigured] = useState(initialConfigured ?? false);
useEffect(() => {
// Skip client fetch if server already told us
if (initialConfigured !== undefined) return;
fetch("/api/settings/qbittorrent")
.then((r) => (r.ok ? r.json() : null))
.then((data) => {
setConfigured(!!(data && data.url && data.url.trim() && data.username && data.username.trim()));
})
.catch(() => setConfigured(false));
}, []);
}, [initialConfigured]);
return <QbConfigContext.Provider value={configured}>{children}</QbConfigContext.Provider>;
}