fix(store): copy indent from next item after moving
This commit is contained in:
parent
38f3c58da9
commit
22edb6165b
|
@ -189,4 +189,30 @@ describe("A store", function () {
|
||||||
expect(store.debug().idList).toEqual(["_a", "_c", "_b", "_d"])
|
expect(store.debug().idList).toEqual(["_a", "_c", "_b", "_d"])
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe("contains a moveBefore method which handles indentation", function () {
|
||||||
|
let store
|
||||||
|
|
||||||
|
beforeEach(function () {
|
||||||
|
store = createStore([
|
||||||
|
{text: "a", id: "_a", indented: 0},
|
||||||
|
{text: "b", id: "_b", indented: 1},
|
||||||
|
{text: "c", id: "_c", indented: 2},
|
||||||
|
{text: "d", id: "_d", indented: 3},
|
||||||
|
{text: "e", id: "_e", indented: 0},
|
||||||
|
])
|
||||||
|
})
|
||||||
|
it("moveBefore _e, _c", function () {
|
||||||
|
store.moveBefore("_e", "_c")
|
||||||
|
let debug = store.debug();
|
||||||
|
expect(debug.idList).toEqual(["_a", "_b", "_e", "_c", "_d"])
|
||||||
|
expect(debug.result).toEqual([
|
||||||
|
{text: "a", id: "_a", indented: 0},
|
||||||
|
{text: "b", id: "_b", indented: 1},
|
||||||
|
{text: "e", id: "_e", indented: 2},
|
||||||
|
{text: "c", id: "_c", indented: 2},
|
||||||
|
{text: "d", id: "_d", indented: 3},
|
||||||
|
])
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -301,6 +301,12 @@ function Store(inputData) {
|
||||||
rotate(idList, toIndex, fromIndex + n, fromIndex - toIndex)
|
rotate(idList, toIndex, fromIndex + n, fromIndex - toIndex)
|
||||||
changed = true
|
changed = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Copy indent from the next item, or 0 when at the end
|
||||||
|
const v = value(to)
|
||||||
|
if (v) value(from).indented = v.indented
|
||||||
|
else value(from).indented = 0
|
||||||
|
|
||||||
return [index(from), n]
|
return [index(from), n]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user