feat: load data on sidebar at load

This commit is contained in:
Julien Froidefond
2025-02-16 21:24:14 +01:00
parent 18a3bc1d5b
commit fb6cdda959

View File

@@ -21,7 +21,6 @@ export function Sidebar({ isOpen, onClose }: SidebarProps) {
const [isLoading, setIsLoading] = useState(true); const [isLoading, setIsLoading] = useState(true);
const [isRefreshing, setIsRefreshing] = useState(false); const [isRefreshing, setIsRefreshing] = useState(false);
const [isLoadingFavorites, setIsLoadingFavorites] = useState(true); const [isLoadingFavorites, setIsLoadingFavorites] = useState(true);
const [hasLoadedData, setHasLoadedData] = useState(false);
const fetchLibraries = useCallback(async () => { const fetchLibraries = useCallback(async () => {
setIsLoading(true); setIsLoading(true);
@@ -73,21 +72,16 @@ export function Sidebar({ isOpen, onClose }: SidebarProps) {
} }
}, []); }, []);
// Chargement des données à l'ouverture de la sidebar // Chargement initial des données
useEffect(() => { useEffect(() => {
if (isOpen && !hasLoadedData) { fetchLibraries();
fetchLibraries(); fetchFavorites();
fetchFavorites(); }, [fetchLibraries, fetchFavorites]);
setHasLoadedData(true);
}
}, [isOpen, hasLoadedData, fetchLibraries, fetchFavorites]);
// Mettre à jour les favoris quand ils changent // Mettre à jour les favoris quand ils changent
useEffect(() => { useEffect(() => {
const handleFavoritesChange = () => { const handleFavoritesChange = () => {
if (isOpen) { fetchFavorites();
fetchFavorites();
}
}; };
window.addEventListener("favoritesChanged", handleFavoritesChange); window.addEventListener("favoritesChanged", handleFavoritesChange);
@@ -95,7 +89,7 @@ export function Sidebar({ isOpen, onClose }: SidebarProps) {
return () => { return () => {
window.removeEventListener("favoritesChanged", handleFavoritesChange); window.removeEventListener("favoritesChanged", handleFavoritesChange);
}; };
}, [fetchFavorites, isOpen]); }, [fetchFavorites]);
const handleRefresh = async () => { const handleRefresh = async () => {
setIsRefreshing(true); setIsRefreshing(true);