1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-01-29 19:27:43 +01:00

Update isHistory to match new interface. (#5197)

* Update `isHistory` to match new interface.

This change merely preserves the original functionality and does not add verification of Batch's new `selectionBefore` property.

* Add changeset.
This commit is contained in:
Jacob Carpenter 2022-11-17 08:21:37 -08:00 committed by GitHub
parent e139c11235
commit 70b64dc8f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 91 additions and 3 deletions

View File

@ -0,0 +1,5 @@
---
'slate-history': patch
---
Fix isHistory check.

View File

@ -27,8 +27,10 @@ export const History = {
isPlainObject(value) &&
Array.isArray(value.redos) &&
Array.isArray(value.undos) &&
(value.redos.length === 0 || Operation.isOperationList(value.redos[0])) &&
(value.undos.length === 0 || Operation.isOperationList(value.undos[0]))
(value.redos.length === 0 ||
Operation.isOperationList(value.redos[0].operations)) &&
(value.undos.length === 0 ||
Operation.isOperationList(value.undos[0].operations))
)
},
}

View File

@ -1,7 +1,7 @@
import assert from 'assert'
import { fixtures } from '../../../support/fixtures'
import { createHyperscript } from 'slate-hyperscript'
import { withHistory } from '..'
import { History, withHistory } from '..'
describe('slate-history', () => {
fixtures(__dirname, 'undo', ({ module }) => {
@ -12,6 +12,14 @@ describe('slate-history', () => {
assert.deepEqual(editor.children, output.children)
assert.deepEqual(editor.selection, output.selection)
})
fixtures(__dirname, 'isHistory', ({ module }) => {
const { input, run, output } = module
const editor = withTest(withHistory(input))
run(editor)
const result = History.isHistory(editor.history)
assert.strictEqual(result, output)
})
})
export const jsx = createHyperscript({

View File

@ -0,0 +1,18 @@
/** @jsx jsx */
import { Transforms } from 'slate'
import { jsx } from '..'
export const input = (
<editor>
<block>
Initial text <cursor />
</block>
</editor>
)
export const run = editor => {
Transforms.insertText(editor, 'additional text')
}
export const output = true

View File

@ -0,0 +1,21 @@
/** @jsx jsx */
import { Transforms } from 'slate'
import { jsx } from '..'
export const input = (
<editor>
<block>
Initial text <cursor />
</block>
</editor>
)
export const run = editor => {
Transforms.insertText(editor, 'additional text')
editor.undo()
editor.redo()
}
export const output = true

View File

@ -0,0 +1,20 @@
/** @jsx jsx */
import { Transforms } from 'slate'
import { jsx } from '..'
export const input = (
<editor>
<block>
Initial text <cursor />
</block>
</editor>
)
export const run = editor => {
Transforms.insertText(editor, 'additional text')
editor.undo()
}
export const output = true

View File

@ -0,0 +1,14 @@
/** @jsx jsx */
import { jsx } from '..'
export const input = (
<editor>
<block>
Initial text <cursor />
</block>
</editor>
)
export const run = () => {}
export const output = true