Skip to content

Commit

Permalink
Changed main comparator engine & sort functions to be more general #5457
Browse files Browse the repository at this point in the history
  • Loading branch information
wszymanski committed Oct 5, 2018
1 parent 438f661 commit e021be0
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 5 deletions.
5 changes: 3 additions & 2 deletions src/plugins/columnSorting/comparatorEngine.js
Expand Up @@ -12,8 +12,9 @@ export const FIRST_AFTER_SECOND = 1;
* @param {Array} columnMeta Column meta object.
* @returns {Function}
*/
function getCompareFunctionFactory(columnMeta) {
const columnSettings = columnMeta.columnSorting;
export function getCompareFunctionFactory(columnMeta) {
const activePluginSettings = columnMeta.multiColumnSorting || columnMeta.columnSorting;
const columnSettings = activePluginSettings;

if (columnSettings.compareFunctionFactory) {
return columnSettings.compareFunctionFactory;
Expand Down
3 changes: 2 additions & 1 deletion src/plugins/columnSorting/sortFunction/date.js
Expand Up @@ -11,7 +11,8 @@ import { DO_NOT_SWAP, FIRST_BEFORE_SECOND, FIRST_AFTER_SECOND } from '../compara
*/
export default function dateSort(sortOrder, columnMeta) {
return function(value, nextValue) {
const { sortEmptyCells } = columnMeta.columnSorting;
const activePluginSettings = columnMeta.multiColumnSorting || columnMeta.columnSorting;
const { sortEmptyCells } = activePluginSettings;

if (value === nextValue) {
return DO_NOT_SWAP;
Expand Down
3 changes: 2 additions & 1 deletion src/plugins/columnSorting/sortFunction/default.js
Expand Up @@ -10,7 +10,8 @@ import { DO_NOT_SWAP, FIRST_BEFORE_SECOND, FIRST_AFTER_SECOND } from '../compara
*/
export default function defaultSort(sortOrder, columnMeta) {
return function(value, nextValue) {
const { sortEmptyCells } = columnMeta.columnSorting;
const activePluginSettings = columnMeta.multiColumnSorting || columnMeta.columnSorting;
const { sortEmptyCells } = activePluginSettings;

if (typeof value === 'string') {
value = value.toLowerCase();
Expand Down
3 changes: 2 additions & 1 deletion src/plugins/columnSorting/sortFunction/numeric.js
Expand Up @@ -12,7 +12,8 @@ export default function numericSort(sortOrder, columnMeta) {
return function(value, nextValue) {
const parsedFirstValue = parseFloat(value);
const parsedSecondValue = parseFloat(nextValue);
const { sortEmptyCells } = columnMeta.columnSorting;
const activePluginSettings = columnMeta.multiColumnSorting || columnMeta.columnSorting;
const { sortEmptyCells } = activePluginSettings;

// Watch out when changing this part of code! Check below returns 0 (as expected) when comparing empty string, null, undefined
if (parsedFirstValue === parsedSecondValue || (isNaN(parsedFirstValue) && isNaN(parsedSecondValue))) {
Expand Down

0 comments on commit e021be0

Please sign in to comment.