Skip to content

Commit fc9c8d4

Browse files
authored
fix(orderlist): preserve original order when moving multi-selected items (primefaces#8497)
* fix(orderlist): preserve item order when multi-select moving * fixed ci failing * fixed formating issue * style(orderlist): fix eslint padding rule * fixed: Code style issues * fix(orderlist): correct selection sorting logic for multi-select
1 parent 7427f57 commit fc9c8d4

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

components/lib/orderlist/OrderList.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,14 @@ export const OrderList = React.memo(
6969
if (selected) {
7070
newSelection = metaKey ? selectionState.filter((_, i) => i !== selectedIndex) : [value];
7171
} else {
72-
newSelection = metaKey ? [...selectionState, value] : [value];
72+
if (metaKey) {
73+
const merged = [...selectionState, value];
74+
const list = props.value || [];
75+
76+
newSelection = merged.sort((a, b) => list.indexOf(a) - list.indexOf(b));
77+
} else {
78+
newSelection = [value];
79+
}
7380
}
7481

7582
setSelectionState(newSelection);

0 commit comments

Comments
 (0)