Fix - Sort Data In/Out correctly in Sites Management page in the Pangolin Dashboard #867
+24
−2
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.
Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
Fixes #767
Data Out and Data In sorting option in the "Manage Sites" tab does not actually seem to be sorting on most data in/out based on total number of bytes, but it will try to sort it as text (Str).
The solution is to parse each size string to a numeric value (in bytes) and compare those numbers:
parseDataSize
helper that splits off the numeric part and unit from the string and converts it to a consistent number (bytes)sortingFn
to theSitesTable.tsx
to correctly sort the data in/out.As you can see the table now sorts correctly!
Fix Considerations
I've decided to put the
parseDataSize
function as a shared module, this makes it more reusable if the maintainers of this project decide to use any other table or component that needs to sort or compare data-size strings.Adding it to only the
SitesTable.tsx
seemed a fine fix for now, but could lead to duplicate code if it is needed elsewhere in the project.How to test?
I'm not super used to Typescript, so please let me know if you would like things changed :)