feat: load data on sidebar at load
This commit is contained in:
@@ -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();
|
||||||
setHasLoadedData(true);
|
}, [fetchLibraries, fetchFavorites]);
|
||||||
}
|
|
||||||
}, [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);
|
||||||
|
|||||||
Reference in New Issue
Block a user