feat: refactor sidebar to nested draggable lists with long-press gesture arbitration
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user