add useMemo and 3 more sortBy options

This commit is contained in:
Gal Elmalah
2020-10-11 22:07:15 +03:00
committed by Vishnu Ks
parent e1962883f6
commit 8cd6ba59d7
2 changed files with 25 additions and 16 deletions

View File

@@ -1,3 +1,4 @@
/* eslint-disable react/jsx-filename-extension */
import React from 'react';
import '../styles/sidebar.css';
import BookCard from './bookcard';
@@ -6,13 +7,14 @@ import SortByDropdown, { FIELDS_TO_SORT_BY, compareFunctions } from './sortByDro
export default ({ data, limit }) => {
const [sortBy, setSortBy] = React.useState(FIELDS_TO_SORT_BY[0]);
const getSortedBooks = () => [...data.allBooksJson.edges]
.sort(compareFunctions[sortBy]);
const sortedBooks = React.useMemo(() => [...data.allBooksJson.edges]
.sort(compareFunctions[sortBy.value]),
[sortBy]);
return (
<>
<SortByDropdown sortBy={sortBy} onSortByItemClick={setSortBy} />
{getSortedBooks().map((x, index) => {
<SortByDropdown sortBy={sortBy.label} onSortByItemClick={setSortBy} />
{sortedBooks.map((x, index) => {
const book = x.node;
if (!limit || index < limit) {
if (!book.description || book.description.length < 10) {