From ceca93e54d3e988d3d6391c35858f3687cde5e60 Mon Sep 17 00:00:00 2001 From: Katalina Okano Date: Sun, 28 May 2023 10:29:22 -0400 Subject: [PATCH] one of these sorts will flip it omg --- .../molecules/picker-category/PickerCategory.tsx | 2 +- .../design-system/organisms/role-picker/RolePicker.tsx | 4 ++-- packages/misc-utils/sortBy.ts | 9 ++++++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/design-system/molecules/picker-category/PickerCategory.tsx b/packages/design-system/molecules/picker-category/PickerCategory.tsx index f8aada8..50e7aaf 100644 --- a/packages/design-system/molecules/picker-category/PickerCategory.tsx +++ b/packages/design-system/molecules/picker-category/PickerCategory.tsx @@ -47,7 +47,7 @@ export const PickerCategory = (props: CategoryProps) => ( )} - {sortBy(props.roles, 'position').map((role, idx) => ( + {sortBy(props.roles, 'position', undefined, true).map((role, idx) => ( { selectedRoles={selectedRoles.filter((roleId) => category.roles.includes(roleId) )} - roles={( + roles={ category.roles .map((role) => props.roles.find((r) => r.id === role)) .filter((r) => r !== undefined) as Role[] - ).sort((a, b) => b.position - a.position)} + } onChange={handleChange(category)} wikiMode={false} type={category.type === CategoryType.Single ? 'single' : 'multi'} diff --git a/packages/misc-utils/sortBy.ts b/packages/misc-utils/sortBy.ts index 1be2c8d..d223071 100644 --- a/packages/misc-utils/sortBy.ts +++ b/packages/misc-utils/sortBy.ts @@ -1,8 +1,11 @@ export const sortBy = ( array: T[], key: Key, - predicate?: (a: T[typeof key], b: T[typeof key]) => number + predicate?: (a: T[typeof key], b: T[typeof key]) => number, + reverse?: boolean ) => { + let postmultiplier = reverse ? -1 : 1; + return array.sort((a, b) => { if (predicate) { return predicate(a[key], b[key]); @@ -13,9 +16,9 @@ export const sortBy = ( } if (a[key] > b[key]) { - return 1; + return 1 * postmultiplier; } - return -1; + return -1 * postmultiplier; }); };