21 lines
761 B
TypeScript
21 lines
761 B
TypeScript
export function mergeWithRemainder(input: {
|
|
currentOrder: string[];
|
|
reorderedVisibleKeys: string[];
|
|
}): string[] {
|
|
const reorderedSet = new Set(input.reorderedVisibleKeys);
|
|
const remainder = input.currentOrder.filter((key) => !reorderedSet.has(key));
|
|
return [...input.reorderedVisibleKeys, ...remainder];
|
|
}
|
|
|
|
export function hasVisibleOrderChanged(input: {
|
|
currentOrder: string[];
|
|
reorderedVisibleKeys: string[];
|
|
}): boolean {
|
|
const visibleSet = new Set(input.reorderedVisibleKeys);
|
|
const currentVisible = input.currentOrder.filter((key) => visibleSet.has(key));
|
|
if (currentVisible.length !== input.reorderedVisibleKeys.length) {
|
|
return true;
|
|
}
|
|
return input.reorderedVisibleKeys.some((key, index) => currentVisible[index] !== key);
|
|
}
|