fix: select filtered books when activating select all (#1237)

This commit is contained in:
Huang Xin
2025-05-25 14:02:34 +08:00
committed by GitHub
parent 68c3c45da3
commit e6428656c2
@@ -74,23 +74,6 @@ const Bookshelf: React.FC<BookshelfProps> = ({
const currentBookshelfItems = navBooksGroup ? navBooksGroup.books : allBookshelfItems;
useEffect(() => {
if (isSelectMode) {
setShowSelectModeActions(true);
if (isSelectAll) {
setSelectedBooks(
currentBookshelfItems.map((item) => ('hash' in item ? item.hash : item.id)),
);
} else if (isSelectNone) {
setSelectedBooks([]);
}
} else {
setSelectedBooks([]);
setShowSelectModeActions(false);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [isSelectMode, isSelectAll, isSelectNone]);
useEffect(() => {
if (isImportingBook.current) return;
isImportingBook.current = true;
@@ -267,6 +250,23 @@ const Bookshelf: React.FC<BookshelfProps> = ({
}
});
useEffect(() => {
if (isSelectMode) {
setShowSelectModeActions(true);
if (isSelectAll) {
setSelectedBooks(
filteredBookshelfItems.map((item) => ('hash' in item ? item.hash : item.id)),
);
} else if (isSelectNone) {
setSelectedBooks([]);
}
} else {
setSelectedBooks([]);
setShowSelectModeActions(false);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [isSelectMode, isSelectAll, isSelectNone]);
return (
<div className='bookshelf'>
<div