Skip to content

Commit d3015b2

Browse files
committed
fix(Scanner): Fix move stability
Signed-off-by: Marcel Klehr <[email protected]>
1 parent 36101a8 commit d3015b2

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/lib/Scanner.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ export default class Scanner<L1 extends TItemLocation, L2 extends TItemLocation>
159159
await Promise.resolve()
160160
const removedItem = removeAction.payload
161161

162-
if (this.mergeable(removedItem, createdItem)) {
162+
if (this.mergeable(removedItem, createdItem) && (removedItem.type !== 'folder' || removedItem.childrenSimilarity(createdItem) > 0.8)) {
163163
this.result.CREATE.retract(createAction)
164164
this.result.REMOVE.retract(removeAction)
165165
this.result.MOVE.commit({
@@ -222,7 +222,7 @@ export default class Scanner<L1 extends TItemLocation, L2 extends TItemLocation>
222222
const newItem = createdItem.findItemFilter(
223223
removedItem.type,
224224
item => this.mergeable(removedItem, item),
225-
item => item.childrenSimilarity(createdItem)
225+
item => item.childrenSimilarity(removedItem)
226226
)
227227
let index
228228
if (newItem) {

src/lib/Tree.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ export class Folder<L extends TItemLocation> {
266266
if (otherItem instanceof Folder) {
267267
return this.children.reduce(
268268
(count, item) =>
269-
otherItem.children.filter(i => i.title === item.title).length > 0 ? count + 1 : count,
269+
otherItem.children.find(i => i.title === item.title) ? count + 1 : count,
270270
0
271271
) / Math.max(this.children.length, otherItem.children.length)
272272
}

0 commit comments

Comments
 (0)