From 5048e534d5cf6a191049ca9f408054ffd1764b29 Mon Sep 17 00:00:00 2001 From: Zhongou ZHENG Date: Mon, 31 May 2021 21:33:35 +0200 Subject: [PATCH] Allow sorting by most asked companies to less asked companies --- src/components/Table/index.js | 38 ++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/src/components/Table/index.js b/src/components/Table/index.js index 553a5520..e892834a 100644 --- a/src/components/Table/index.js +++ b/src/components/Table/index.js @@ -160,6 +160,7 @@ const Table = () => { { Header: 'Questions', accessor: 'questions', + disableSortBy: true, Cell: cellInfo => { return ( { { Header: 'Solutions', accessor: 'solutions', + disableSortBy: true, Cell: cellInfo => { const url = cellInfo.row.original.premium ? `${cellInfo.row.original.url}/` @@ -234,6 +236,7 @@ const Table = () => { ); }, accessor: 'pattern', + disableSortBy: true, Cell: cellInfo => { const patterns = `${cellInfo.row.original.pattern}` .split(',') @@ -261,6 +264,7 @@ const Table = () => { { Header: 'Difficulty', accessor: 'difficulty', + disableSortBy: true, Cell: cellInfo => ( { { Header: () => { return ( -
- Companies{' '} - - - -
+ <> +
+ Companies{' '} + + + +
+ ); }, accessor: 'companies', + sortType: (a, b) => { + if (a.original.companies.length === b.original.companies.length) { + return 0; + } + return a.original.companies.length > b.original.companies.length + ? 1 + : -1; + }, Cell: cellInfo => { const companies = cellInfo.row.original.companies.map(company => { return ( @@ -333,7 +349,15 @@ const Table = () => { {headerGroup.headers.map(column => ( - {column.render('Header')} +
+ {column.render('Header')} + {/* eslint-disable-next-line no-nested-ternary */} + {column.isSorted + ? column.isSortedDesc + ? ' 🔽' + : ' 🔼' + : ''} +
{column.canFilter ? column.render('Filter') : null}
))}