Fix secondary sort error in cube comparisons #2443
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #2436.
Issue
The error was caused by the
getLabels
function being incorrectly passed a whole column instead of an array of cards.For example, if the primary sort was
Color Category
and the secondary sort wasGuilds
, thecolumns
object would end up looking like:And then the
column
variable takes on the individual values of that, each of which is an object with guild names as keys (e.g.{"Azorius": [...], "Boros": [...], ...}
). Because thegetLabels
function expects an array of cards and instead got this object, it caused errors, most notably because objects are not iterable and some sort options require iterating over the passed cards.This also explains why only some tags were affected. Options such as
Mana Value
only return a predetermined set of labels, so only those options that actually need the list of cards (such asTags
) cause a crash.Fix
Change the call so that the column is flattened into a simple array of all the cards within it.