Files
paseo/packages/app/src/utils/sidebar-reorder.ts
T

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);
}