Fixed: Fix book index footer stats

Fixes #1405
Fixes #1407
pull/1398/head
ta264 3 years ago
parent 8011112919
commit 472da10149

@ -14,16 +14,18 @@ class BookIndexFooter extends PureComponent {
// Render
render() {
const { author } = this.props;
const count = author.length;
const { book } = this.props;
const count = book.length;
let books = 0;
let bookFiles = 0;
let ended = 0;
let continuing = 0;
let monitored = 0;
let totalFileSize = 0;
author.forEach((s) => {
const authors = new Set();
book.forEach((s) => {
authors.add(s.authorId);
const { statistics = {} } = s;
const {
@ -35,12 +37,6 @@ class BookIndexFooter extends PureComponent {
books += bookCount;
bookFiles += bookFileCount;
if (s.status === 'ended') {
ended++;
} else {
continuing++;
}
if (s.monitored) {
monitored++;
}
@ -104,23 +100,6 @@ class BookIndexFooter extends PureComponent {
</div>
<div className={styles.statistics}>
<DescriptionList>
<DescriptionListItem
title={translate('Authors')}
data={count}
/>
<DescriptionListItem
title={translate('Ended')}
data={ended}
/>
<DescriptionListItem
title={translate('Continuing')}
data={continuing}
/>
</DescriptionList>
<DescriptionList>
<DescriptionListItem
title={translate('Monitored')}
@ -134,6 +113,11 @@ class BookIndexFooter extends PureComponent {
</DescriptionList>
<DescriptionList>
<DescriptionListItem
title={translate('Authors')}
data={authors.size}
/>
<DescriptionListItem
title={translate('Books')}
data={books}
@ -161,7 +145,7 @@ class BookIndexFooter extends PureComponent {
}
BookIndexFooter.propTypes = {
author: PropTypes.arrayOf(PropTypes.object).isRequired
book: PropTypes.arrayOf(PropTypes.object).isRequired
};
export default BookIndexFooter;

@ -6,16 +6,18 @@ import BookIndexFooter from './BookIndexFooter';
function createUnoptimizedSelector() {
return createSelector(
createClientSideCollectionSelector('authors', 'authorIndex'),
(authors) => {
return authors.items.map((s) => {
createClientSideCollectionSelector('books', 'bookIndex'),
(books) => {
return books.items.map((s) => {
const {
authorId,
monitored,
status,
statistics
} = s;
return {
authorId,
monitored,
status,
statistics
@ -25,19 +27,19 @@ function createUnoptimizedSelector() {
);
}
function createAuthorSelector() {
function createBookSelector() {
return createDeepEqualSelector(
createUnoptimizedSelector(),
(author) => author
(book) => book
);
}
function createMapStateToProps() {
return createSelector(
createAuthorSelector(),
(author) => {
createBookSelector(),
(book) => {
return {
author
book
};
}
);

Loading…
Cancel
Save