Hide "select" button while no items are available

This commit is contained in:
schroda
2025-05-21 00:43:03 +02:00
parent 6b812cb143
commit cafa0c3983
2 changed files with 26 additions and 20 deletions

View File

@@ -210,11 +210,13 @@ export const ChapterList = ({
unreadChapters={Chapters.getNonRead(chapters)}
/>
)}
<SelectableCollectionSelectAll
areAllItemsSelected={areAllItemsSelected}
areNoItemsSelected={areNoItemsSelected}
onChange={(checked) => handleSelectAll(checked, checked ? visibleChapterIds : [])}
/>
{!!visibleChapterIds.length && (
<SelectableCollectionSelectAll
areAllItemsSelected={areAllItemsSelected}
areNoItemsSelected={areNoItemsSelected}
onChange={(checked) => handleSelectAll(checked, checked ? visibleChapterIds : [])}
/>
)}
</Stack>
</ChapterListHeader>

View File

@@ -181,23 +181,27 @@ export function Library() {
<UpdateChecker categoryId={activeTab?.id} />
</>
)}
<SelectableCollectionSelectMode
isActive={isSelectModeActive}
areAllItemsSelected={areAllItemsSelected}
areNoItemsSelected={areNoItemsSelected}
onSelectAll={(selectAll) => handleSelectAll(selectAll, [...new Set(mangas.map((manga) => manga.id))])}
onModeChange={(checked) => {
setIsSelectModeActive(checked);
if (checked) {
handleSelectAll(true, [...new Set(mangas.map((manga) => manga.id))]);
} else {
tabs.forEach((tab) => handleSelectAll(false, [], tab.id.toString()));
{!!mangas.length && (
<SelectableCollectionSelectMode
isActive={isSelectModeActive}
areAllItemsSelected={areAllItemsSelected}
areNoItemsSelected={areNoItemsSelected}
onSelectAll={(selectAll) =>
handleSelectAll(selectAll, [...new Set(mangas.map((manga) => manga.id))])
}
}}
/>
onModeChange={(checked) => {
setIsSelectModeActive(checked);
if (checked) {
handleSelectAll(true, [...new Set(mangas.map((manga) => manga.id))]);
} else {
tabs.forEach((tab) => handleSelectAll(false, [], tab.id.toString()));
}
}}
/>
)}
</>,
[isSelectModeActive, areNoItemsSelected, areAllItemsSelected, activeTab],
[isSelectModeActive, areNoItemsSelected, areAllItemsSelected, activeTab, mangas.length],
);
const handleTabChange = (newTab: number) => {