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"])
|
||||
})
|
||||
})
|
||||
|
||||
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)
|
||||
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]
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user