@portabletext/editor 1.44.9 → 1.44.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/_chunks-cjs/editor-provider.cjs +1 -1
- package/lib/_chunks-cjs/editor-provider.cjs.map +1 -1
- package/lib/_chunks-es/editor-provider.js +1 -1
- package/lib/_chunks-es/editor-provider.js.map +1 -1
- package/lib/index.cjs +20 -5
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +20 -5
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
- package/src/editor/Editable.tsx +3 -2
- package/src/editor/__tests__/PortableTextEditor.test.tsx +10 -0
- package/src/editor/__tests__/PortableTextEditorTester.tsx +3 -17
- package/src/editor/__tests__/RangeDecorations.test.tsx +6 -0
- package/src/editor/__tests__/pteWarningsSelfSolving.test.tsx +12 -5
- package/src/editor/__tests__/sync-value.test.tsx +5 -0
- package/src/editor/plugins/__tests__/withEditableAPIDelete.test.tsx +8 -3
- package/src/editor/plugins/__tests__/withEditableAPIGetFragment.test.tsx +3 -0
- package/src/editor/plugins/__tests__/withEditableAPIInsert.test.tsx +20 -12
- package/src/editor/plugins/__tests__/withEditableAPISelectionsOverlapping.test.tsx +5 -0
- package/src/editor/plugins/__tests__/withPortableTextLists.test.tsx +2 -0
- package/src/editor/plugins/__tests__/withPortableTextMarkModel.test.tsx +10 -289
- package/src/editor/plugins/__tests__/withPortableTextSelections.test.tsx +2 -0
- package/src/editor/plugins/__tests__/withUndoRedo.test.tsx +3 -0
- package/src/editor/range-decorations-machine.ts +21 -3
- package/src/editor/sync-machine.ts +8 -6
- package/src/internal-utils/__tests__/valueNormalization.test.tsx +2 -0
package/package.json
CHANGED
package/src/editor/Editable.tsx
CHANGED
|
@@ -175,10 +175,11 @@ export const PortableTextEditable = forwardRef<
|
|
|
175
175
|
|
|
176
176
|
const rangeDecorationsActor = useActorRef(rangeDecorationsMachine, {
|
|
177
177
|
input: {
|
|
178
|
+
rangeDecorations: rangeDecorations ?? [],
|
|
178
179
|
readOnly,
|
|
179
|
-
slateEditor,
|
|
180
180
|
schema: schemaTypes,
|
|
181
|
-
|
|
181
|
+
slateEditor,
|
|
182
|
+
skipSetup: !editorActor.getSnapshot().matches({setup: 'setting up'}),
|
|
182
183
|
},
|
|
183
184
|
})
|
|
184
185
|
useSelector(rangeDecorationsActor, (s) => s.context.updateCount)
|
|
@@ -3,6 +3,7 @@ import {render, waitFor} from '@testing-library/react'
|
|
|
3
3
|
import {createRef, type RefObject} from 'react'
|
|
4
4
|
import {describe, expect, it, vi} from 'vitest'
|
|
5
5
|
import type {EditorSelection} from '../..'
|
|
6
|
+
import {createTestKeyGenerator} from '../../internal-utils/test-key-generator'
|
|
6
7
|
import {PortableTextEditor} from '../PortableTextEditor'
|
|
7
8
|
import {PortableTextEditorTester, schemaType} from './PortableTextEditorTester'
|
|
8
9
|
|
|
@@ -21,6 +22,7 @@ describe('initialization', () => {
|
|
|
21
22
|
const onChange = vi.fn()
|
|
22
23
|
const {container} = render(
|
|
23
24
|
<PortableTextEditorTester
|
|
25
|
+
keyGenerator={createTestKeyGenerator()}
|
|
24
26
|
onChange={onChange}
|
|
25
27
|
renderPlaceholder={renderPlaceholder}
|
|
26
28
|
ref={editorRef}
|
|
@@ -87,6 +89,7 @@ describe('initialization', () => {
|
|
|
87
89
|
const editorRef = createRef<PortableTextEditor>()
|
|
88
90
|
render(
|
|
89
91
|
<PortableTextEditorTester
|
|
92
|
+
keyGenerator={createTestKeyGenerator()}
|
|
90
93
|
ref={editorRef}
|
|
91
94
|
onChange={onChange}
|
|
92
95
|
schemaType={schemaType}
|
|
@@ -118,6 +121,7 @@ describe('initialization', () => {
|
|
|
118
121
|
const onChange = vi.fn()
|
|
119
122
|
render(
|
|
120
123
|
<PortableTextEditorTester
|
|
124
|
+
keyGenerator={createTestKeyGenerator()}
|
|
121
125
|
onChange={onChange}
|
|
122
126
|
ref={editorRef}
|
|
123
127
|
selection={initialSelection}
|
|
@@ -162,6 +166,7 @@ describe('initialization', () => {
|
|
|
162
166
|
const onChange = vi.fn()
|
|
163
167
|
const {rerender} = render(
|
|
164
168
|
<PortableTextEditorTester
|
|
169
|
+
keyGenerator={createTestKeyGenerator()}
|
|
165
170
|
onChange={onChange}
|
|
166
171
|
ref={editorRef}
|
|
167
172
|
selection={initialSelection}
|
|
@@ -195,6 +200,7 @@ describe('initialization', () => {
|
|
|
195
200
|
})
|
|
196
201
|
rerender(
|
|
197
202
|
<PortableTextEditorTester
|
|
203
|
+
keyGenerator={createTestKeyGenerator()}
|
|
198
204
|
onChange={onChange}
|
|
199
205
|
ref={editorRef}
|
|
200
206
|
selection={newSelection}
|
|
@@ -221,6 +227,7 @@ describe('initialization', () => {
|
|
|
221
227
|
const onChange = vi.fn()
|
|
222
228
|
render(
|
|
223
229
|
<PortableTextEditorTester
|
|
230
|
+
keyGenerator={createTestKeyGenerator()}
|
|
224
231
|
onChange={onChange}
|
|
225
232
|
ref={editorRef}
|
|
226
233
|
selection={initialSelection}
|
|
@@ -266,6 +273,7 @@ describe('initialization', () => {
|
|
|
266
273
|
await waitFor(() => {
|
|
267
274
|
render(
|
|
268
275
|
<PortableTextEditorTester
|
|
276
|
+
keyGenerator={createTestKeyGenerator()}
|
|
269
277
|
onChange={onChange}
|
|
270
278
|
ref={editorRef}
|
|
271
279
|
selection={initialSelection}
|
|
@@ -298,6 +306,7 @@ describe('initialization', () => {
|
|
|
298
306
|
const newOnChange = vi.fn()
|
|
299
307
|
_rerender(
|
|
300
308
|
<PortableTextEditorTester
|
|
309
|
+
keyGenerator={createTestKeyGenerator()}
|
|
301
310
|
onChange={newOnChange}
|
|
302
311
|
ref={editorRef}
|
|
303
312
|
selection={initialSelection}
|
|
@@ -350,6 +359,7 @@ describe('initialization', () => {
|
|
|
350
359
|
const onChange = vi.fn()
|
|
351
360
|
render(
|
|
352
361
|
<PortableTextEditorTester
|
|
362
|
+
keyGenerator={createTestKeyGenerator()}
|
|
353
363
|
onChange={onChange}
|
|
354
364
|
ref={editorRef}
|
|
355
365
|
selection={initialSelection}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import {Schema} from '@sanity/schema'
|
|
2
2
|
import {defineArrayMember, defineField} from '@sanity/types'
|
|
3
|
-
import {
|
|
4
|
-
forwardRef,
|
|
5
|
-
useCallback,
|
|
6
|
-
useEffect,
|
|
7
|
-
useMemo,
|
|
8
|
-
type ForwardedRef,
|
|
9
|
-
} from 'react'
|
|
3
|
+
import {forwardRef, useMemo, type ForwardedRef} from 'react'
|
|
10
4
|
import {vi} from 'vitest'
|
|
11
5
|
import {
|
|
12
6
|
PortableTextEditable,
|
|
@@ -77,8 +71,6 @@ const schema = Schema.compile({
|
|
|
77
71
|
types: [portableTextType, colorAndLink],
|
|
78
72
|
})
|
|
79
73
|
|
|
80
|
-
let key = 0
|
|
81
|
-
|
|
82
74
|
export const PortableTextEditorTester = forwardRef(
|
|
83
75
|
function PortableTextEditorTester(
|
|
84
76
|
props: Partial<
|
|
@@ -90,23 +82,17 @@ export const PortableTextEditorTester = forwardRef(
|
|
|
90
82
|
schemaType: PortableTextEditorProps['schemaType']
|
|
91
83
|
selection?: PortableTextEditableProps['selection']
|
|
92
84
|
value?: PortableTextEditorProps['value']
|
|
85
|
+
keyGenerator: PortableTextEditorProps['keyGenerator']
|
|
93
86
|
},
|
|
94
87
|
ref: ForwardedRef<PortableTextEditor>,
|
|
95
88
|
) {
|
|
96
|
-
useEffect(() => {
|
|
97
|
-
key = 0
|
|
98
|
-
}, [])
|
|
99
|
-
const _keyGenerator = useCallback(() => {
|
|
100
|
-
key++
|
|
101
|
-
return `${key}`
|
|
102
|
-
}, [])
|
|
103
89
|
const onChange = useMemo(() => props.onChange || vi.fn(), [props.onChange])
|
|
104
90
|
return (
|
|
105
91
|
<PortableTextEditor
|
|
106
92
|
schemaType={props.schemaType}
|
|
107
93
|
onChange={onChange}
|
|
108
94
|
value={props.value || undefined}
|
|
109
|
-
keyGenerator={
|
|
95
|
+
keyGenerator={props.keyGenerator}
|
|
110
96
|
ref={ref}
|
|
111
97
|
>
|
|
112
98
|
<PortableTextEditable
|
|
@@ -3,6 +3,7 @@ import {render, waitFor} from '@testing-library/react'
|
|
|
3
3
|
import {createRef, type ReactNode, type RefObject} from 'react'
|
|
4
4
|
import {describe, expect, it, vi} from 'vitest'
|
|
5
5
|
import type {RangeDecoration} from '../..'
|
|
6
|
+
import {createTestKeyGenerator} from '../../internal-utils/test-key-generator'
|
|
6
7
|
import type {PortableTextEditor} from '../PortableTextEditor'
|
|
7
8
|
import {PortableTextEditorTester, schemaType} from './PortableTextEditorTester'
|
|
8
9
|
|
|
@@ -38,6 +39,7 @@ describe('RangeDecorations', () => {
|
|
|
38
39
|
const {rerender} = await waitFor(() =>
|
|
39
40
|
render(
|
|
40
41
|
<PortableTextEditorTester
|
|
42
|
+
keyGenerator={createTestKeyGenerator()}
|
|
41
43
|
onChange={onChange}
|
|
42
44
|
rangeDecorations={rangeDecorations}
|
|
43
45
|
ref={editorRef}
|
|
@@ -64,6 +66,7 @@ describe('RangeDecorations', () => {
|
|
|
64
66
|
// Re-render with the same range decorations
|
|
65
67
|
rerender(
|
|
66
68
|
<PortableTextEditorTester
|
|
69
|
+
keyGenerator={createTestKeyGenerator()}
|
|
67
70
|
onChange={onChange}
|
|
68
71
|
rangeDecorations={rangeDecorations}
|
|
69
72
|
ref={editorRef}
|
|
@@ -86,6 +89,7 @@ describe('RangeDecorations', () => {
|
|
|
86
89
|
]
|
|
87
90
|
rerender(
|
|
88
91
|
<PortableTextEditorTester
|
|
92
|
+
keyGenerator={createTestKeyGenerator()}
|
|
89
93
|
onChange={onChange}
|
|
90
94
|
rangeDecorations={rangeDecorations}
|
|
91
95
|
ref={editorRef}
|
|
@@ -111,6 +115,7 @@ describe('RangeDecorations', () => {
|
|
|
111
115
|
]
|
|
112
116
|
rerender(
|
|
113
117
|
<PortableTextEditorTester
|
|
118
|
+
keyGenerator={createTestKeyGenerator()}
|
|
114
119
|
onChange={onChange}
|
|
115
120
|
rangeDecorations={rangeDecorations}
|
|
116
121
|
ref={editorRef}
|
|
@@ -137,6 +142,7 @@ describe('RangeDecorations', () => {
|
|
|
137
142
|
]
|
|
138
143
|
rerender(
|
|
139
144
|
<PortableTextEditorTester
|
|
145
|
+
keyGenerator={createTestKeyGenerator()}
|
|
140
146
|
onChange={onChange}
|
|
141
147
|
rangeDecorations={rangeDecorations}
|
|
142
148
|
ref={editorRef}
|
|
@@ -2,6 +2,7 @@ import type {PortableTextBlock} from '@sanity/types'
|
|
|
2
2
|
import {render, waitFor} from '@testing-library/react'
|
|
3
3
|
import {createRef, type RefObject} from 'react'
|
|
4
4
|
import {describe, expect, it, vi} from 'vitest'
|
|
5
|
+
import {createTestKeyGenerator} from '../../internal-utils/test-key-generator'
|
|
5
6
|
import {PortableTextEditor} from '../PortableTextEditor'
|
|
6
7
|
import {PortableTextEditorTester, schemaType} from './PortableTextEditorTester'
|
|
7
8
|
|
|
@@ -27,6 +28,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
|
|
|
27
28
|
const onChange = vi.fn()
|
|
28
29
|
render(
|
|
29
30
|
<PortableTextEditorTester
|
|
31
|
+
keyGenerator={createTestKeyGenerator()}
|
|
30
32
|
onChange={onChange}
|
|
31
33
|
ref={editorRef}
|
|
32
34
|
schemaType={schemaType}
|
|
@@ -48,7 +50,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
|
|
|
48
50
|
_type: 'myTestBlockType',
|
|
49
51
|
children: [
|
|
50
52
|
{
|
|
51
|
-
_key: '
|
|
53
|
+
_key: 'k3',
|
|
52
54
|
_type: 'span',
|
|
53
55
|
text: 'Hello with a new key',
|
|
54
56
|
marks: [],
|
|
@@ -83,6 +85,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
|
|
|
83
85
|
const onChange = vi.fn()
|
|
84
86
|
render(
|
|
85
87
|
<PortableTextEditorTester
|
|
88
|
+
keyGenerator={createTestKeyGenerator()}
|
|
86
89
|
onChange={onChange}
|
|
87
90
|
ref={editorRef}
|
|
88
91
|
schemaType={schemaType}
|
|
@@ -140,6 +143,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
|
|
|
140
143
|
const onChange = vi.fn()
|
|
141
144
|
render(
|
|
142
145
|
<PortableTextEditorTester
|
|
146
|
+
keyGenerator={createTestKeyGenerator()}
|
|
143
147
|
onChange={onChange}
|
|
144
148
|
ref={editorRef}
|
|
145
149
|
schemaType={schemaType}
|
|
@@ -162,7 +166,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
|
|
|
162
166
|
_type: 'myTestBlockType',
|
|
163
167
|
children: [
|
|
164
168
|
{
|
|
165
|
-
_key: '
|
|
169
|
+
_key: 'k3',
|
|
166
170
|
_type: 'span',
|
|
167
171
|
text: '',
|
|
168
172
|
marks: [],
|
|
@@ -176,7 +180,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
|
|
|
176
180
|
_type: 'myTestBlockType',
|
|
177
181
|
children: [
|
|
178
182
|
{
|
|
179
|
-
_key: '
|
|
183
|
+
_key: 'k5',
|
|
180
184
|
_type: 'span',
|
|
181
185
|
text: '',
|
|
182
186
|
marks: [],
|
|
@@ -212,6 +216,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
|
|
|
212
216
|
const onChange = vi.fn()
|
|
213
217
|
render(
|
|
214
218
|
<PortableTextEditorTester
|
|
219
|
+
keyGenerator={createTestKeyGenerator()}
|
|
215
220
|
onChange={onChange}
|
|
216
221
|
ref={editorRef}
|
|
217
222
|
schemaType={schemaType}
|
|
@@ -276,6 +281,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
|
|
|
276
281
|
const onChange = vi.fn()
|
|
277
282
|
render(
|
|
278
283
|
<PortableTextEditorTester
|
|
284
|
+
keyGenerator={createTestKeyGenerator()}
|
|
279
285
|
onChange={onChange}
|
|
280
286
|
ref={editorRef}
|
|
281
287
|
schemaType={schemaType}
|
|
@@ -319,6 +325,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
|
|
|
319
325
|
const onChange = vi.fn()
|
|
320
326
|
render(
|
|
321
327
|
<PortableTextEditorTester
|
|
328
|
+
keyGenerator={createTestKeyGenerator()}
|
|
322
329
|
onChange={onChange}
|
|
323
330
|
ref={editorRef}
|
|
324
331
|
schemaType={schemaType}
|
|
@@ -337,9 +344,9 @@ describe('when PTE would display warnings, instead it self solves', () => {
|
|
|
337
344
|
PortableTextEditor.focus(editorRef.current)
|
|
338
345
|
expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
|
|
339
346
|
{
|
|
340
|
-
_key: '
|
|
347
|
+
_key: 'k2',
|
|
341
348
|
_type: 'myTestBlockType',
|
|
342
|
-
children: [{_key: '
|
|
349
|
+
children: [{_key: 'k3', _type: 'span', marks: [], text: ''}],
|
|
343
350
|
markDefs: [],
|
|
344
351
|
style: 'normal',
|
|
345
352
|
},
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {render, waitFor} from '@testing-library/react'
|
|
2
2
|
import {createRef, type RefObject} from 'react'
|
|
3
3
|
import {describe, expect, it, vi} from 'vitest'
|
|
4
|
+
import {createTestKeyGenerator} from '../../internal-utils/test-key-generator'
|
|
4
5
|
import {PortableTextEditor} from '../PortableTextEditor'
|
|
5
6
|
import {PortableTextEditorTester, schemaType} from './PortableTextEditorTester'
|
|
6
7
|
|
|
@@ -43,6 +44,7 @@ describe('useSyncValue', () => {
|
|
|
43
44
|
]
|
|
44
45
|
const {rerender} = render(
|
|
45
46
|
<PortableTextEditorTester
|
|
47
|
+
keyGenerator={createTestKeyGenerator()}
|
|
46
48
|
onChange={onChange}
|
|
47
49
|
ref={editorRef}
|
|
48
50
|
schemaType={schemaType}
|
|
@@ -62,6 +64,7 @@ describe('useSyncValue', () => {
|
|
|
62
64
|
|
|
63
65
|
rerender(
|
|
64
66
|
<PortableTextEditorTester
|
|
67
|
+
keyGenerator={createTestKeyGenerator()}
|
|
65
68
|
onChange={onChange}
|
|
66
69
|
ref={editorRef}
|
|
67
70
|
schemaType={schemaType}
|
|
@@ -99,6 +102,7 @@ describe('useSyncValue', () => {
|
|
|
99
102
|
]
|
|
100
103
|
const {rerender} = render(
|
|
101
104
|
<PortableTextEditorTester
|
|
105
|
+
keyGenerator={createTestKeyGenerator()}
|
|
102
106
|
onChange={onChange}
|
|
103
107
|
ref={editorRef}
|
|
104
108
|
schemaType={schemaType}
|
|
@@ -118,6 +122,7 @@ describe('useSyncValue', () => {
|
|
|
118
122
|
|
|
119
123
|
rerender(
|
|
120
124
|
<PortableTextEditorTester
|
|
125
|
+
keyGenerator={createTestKeyGenerator()}
|
|
121
126
|
onChange={onChange}
|
|
122
127
|
ref={editorRef}
|
|
123
128
|
schemaType={schemaType}
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
PortableTextEditorTester,
|
|
6
6
|
schemaType,
|
|
7
7
|
} from '../../__tests__/PortableTextEditorTester'
|
|
8
|
+
import {createTestKeyGenerator} from '../../../internal-utils/test-key-generator'
|
|
8
9
|
import {PortableTextEditor} from '../../PortableTextEditor'
|
|
9
10
|
|
|
10
11
|
const initialValue = [
|
|
@@ -53,6 +54,7 @@ describe('plugin:withEditableAPI: .delete()', () => {
|
|
|
53
54
|
ref={editorRef}
|
|
54
55
|
schemaType={schemaType}
|
|
55
56
|
value={initialValue}
|
|
57
|
+
keyGenerator={createTestKeyGenerator()}
|
|
56
58
|
/>,
|
|
57
59
|
)
|
|
58
60
|
|
|
@@ -103,6 +105,7 @@ describe('plugin:withEditableAPI: .delete()', () => {
|
|
|
103
105
|
const onChange = vi.fn()
|
|
104
106
|
render(
|
|
105
107
|
<PortableTextEditorTester
|
|
108
|
+
keyGenerator={createTestKeyGenerator()}
|
|
106
109
|
onChange={onChange}
|
|
107
110
|
ref={editorRef}
|
|
108
111
|
schemaType={schemaType}
|
|
@@ -137,11 +140,11 @@ describe('plugin:withEditableAPI: .delete()', () => {
|
|
|
137
140
|
.toMatchInlineSnapshot(`
|
|
138
141
|
[
|
|
139
142
|
{
|
|
140
|
-
"_key": "
|
|
143
|
+
"_key": "k2",
|
|
141
144
|
"_type": "myTestBlockType",
|
|
142
145
|
"children": [
|
|
143
146
|
{
|
|
144
|
-
"_key": "
|
|
147
|
+
"_key": "k3",
|
|
145
148
|
"_type": "span",
|
|
146
149
|
"marks": [],
|
|
147
150
|
"text": "",
|
|
@@ -162,6 +165,7 @@ describe('plugin:withEditableAPI: .delete()', () => {
|
|
|
162
165
|
|
|
163
166
|
render(
|
|
164
167
|
<PortableTextEditorTester
|
|
168
|
+
keyGenerator={createTestKeyGenerator()}
|
|
165
169
|
onChange={onChange}
|
|
166
170
|
ref={editorRef}
|
|
167
171
|
schemaType={schemaType}
|
|
@@ -222,7 +226,7 @@ describe('plugin:withEditableAPI: .delete()', () => {
|
|
|
222
226
|
"_type": "myTestBlockType",
|
|
223
227
|
"children": [
|
|
224
228
|
{
|
|
225
|
-
"_key": "
|
|
229
|
+
"_key": "k2",
|
|
226
230
|
"_type": "span",
|
|
227
231
|
"marks": [],
|
|
228
232
|
"text": "",
|
|
@@ -247,6 +251,7 @@ describe('plugin:withEditableAPI: .delete()', () => {
|
|
|
247
251
|
ref={editorRef}
|
|
248
252
|
schemaType={schemaType}
|
|
249
253
|
value={initialValue}
|
|
254
|
+
keyGenerator={createTestKeyGenerator()}
|
|
250
255
|
/>,
|
|
251
256
|
)
|
|
252
257
|
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
PortableTextEditorTester,
|
|
7
7
|
schemaType,
|
|
8
8
|
} from '../../__tests__/PortableTextEditorTester'
|
|
9
|
+
import {createTestKeyGenerator} from '../../../internal-utils/test-key-generator'
|
|
9
10
|
import {PortableTextEditor} from '../../PortableTextEditor'
|
|
10
11
|
|
|
11
12
|
const initialValue = [
|
|
@@ -56,6 +57,7 @@ describe('plugin:withEditableAPI: .getFragment()', () => {
|
|
|
56
57
|
|
|
57
58
|
render(
|
|
58
59
|
<PortableTextEditorTester
|
|
60
|
+
keyGenerator={createTestKeyGenerator()}
|
|
59
61
|
onChange={onChange}
|
|
60
62
|
ref={editorRef}
|
|
61
63
|
schemaType={schemaType}
|
|
@@ -97,6 +99,7 @@ describe('plugin:withEditableAPI: .getFragment()', () => {
|
|
|
97
99
|
|
|
98
100
|
render(
|
|
99
101
|
<PortableTextEditorTester
|
|
102
|
+
keyGenerator={createTestKeyGenerator()}
|
|
100
103
|
onChange={onChange}
|
|
101
104
|
ref={editorRef}
|
|
102
105
|
schemaType={schemaType}
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
PortableTextEditorTester,
|
|
6
6
|
schemaType,
|
|
7
7
|
} from '../../__tests__/PortableTextEditorTester'
|
|
8
|
+
import {createTestKeyGenerator} from '../../../internal-utils/test-key-generator'
|
|
8
9
|
import {PortableTextEditor} from '../../PortableTextEditor'
|
|
9
10
|
|
|
10
11
|
const initialValue = [
|
|
@@ -62,6 +63,7 @@ describe('plugin:withEditableAPI: .insertChild()', () => {
|
|
|
62
63
|
|
|
63
64
|
render(
|
|
64
65
|
<PortableTextEditorTester
|
|
66
|
+
keyGenerator={createTestKeyGenerator()}
|
|
65
67
|
onChange={onChange}
|
|
66
68
|
ref={editorRef}
|
|
67
69
|
schemaType={schemaType}
|
|
@@ -111,12 +113,12 @@ describe('plugin:withEditableAPI: .insertChild()', () => {
|
|
|
111
113
|
text: 'Block A',
|
|
112
114
|
},
|
|
113
115
|
{
|
|
114
|
-
_key: '
|
|
116
|
+
_key: 'k3',
|
|
115
117
|
_type: 'someObject',
|
|
116
118
|
color: 'red',
|
|
117
119
|
},
|
|
118
120
|
{
|
|
119
|
-
_key: '
|
|
121
|
+
_key: 'k4',
|
|
120
122
|
_type: 'span',
|
|
121
123
|
marks: [],
|
|
122
124
|
text: '',
|
|
@@ -155,12 +157,12 @@ describe('plugin:withEditableAPI: .insertChild()', () => {
|
|
|
155
157
|
text: 'Block A',
|
|
156
158
|
},
|
|
157
159
|
{
|
|
158
|
-
_key: '
|
|
160
|
+
_key: 'k3',
|
|
159
161
|
_type: 'someObject',
|
|
160
162
|
color: 'red',
|
|
161
163
|
},
|
|
162
164
|
{
|
|
163
|
-
_key: '
|
|
165
|
+
_key: 'k6',
|
|
164
166
|
_type: 'span',
|
|
165
167
|
marks: [],
|
|
166
168
|
text: ' ',
|
|
@@ -172,8 +174,8 @@ describe('plugin:withEditableAPI: .insertChild()', () => {
|
|
|
172
174
|
])
|
|
173
175
|
|
|
174
176
|
expect(PortableTextEditor.getSelection(editorRef.current)).toEqual({
|
|
175
|
-
anchor: {path: [{_key: 'a'}, 'children', {_key: '
|
|
176
|
-
focus: {path: [{_key: 'a'}, 'children', {_key: '
|
|
177
|
+
anchor: {path: [{_key: 'a'}, 'children', {_key: 'k6'}], offset: 1},
|
|
178
|
+
focus: {path: [{_key: 'a'}, 'children', {_key: 'k6'}], offset: 1},
|
|
177
179
|
backward: false,
|
|
178
180
|
})
|
|
179
181
|
}
|
|
@@ -208,6 +210,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
|
|
|
208
210
|
schemaType={schemaType}
|
|
209
211
|
value={emptyTextBlock}
|
|
210
212
|
onChange={onChange}
|
|
213
|
+
keyGenerator={createTestKeyGenerator()}
|
|
211
214
|
/>,
|
|
212
215
|
)
|
|
213
216
|
|
|
@@ -240,7 +243,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
|
|
|
240
243
|
await waitFor(() => {
|
|
241
244
|
if (editorRef.current) {
|
|
242
245
|
expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
|
|
243
|
-
{_key: '
|
|
246
|
+
{_key: 'k2', _type: 'someObject', color: 'red'},
|
|
244
247
|
])
|
|
245
248
|
}
|
|
246
249
|
})
|
|
@@ -256,6 +259,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
|
|
|
256
259
|
schemaType={schemaType}
|
|
257
260
|
value={initialValue}
|
|
258
261
|
onChange={onChange}
|
|
262
|
+
keyGenerator={createTestKeyGenerator()}
|
|
259
263
|
/>,
|
|
260
264
|
)
|
|
261
265
|
|
|
@@ -292,7 +296,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
|
|
|
292
296
|
if (editorRef.current) {
|
|
293
297
|
expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
|
|
294
298
|
...initialValue,
|
|
295
|
-
{_key: '
|
|
299
|
+
{_key: 'k2', _type: 'someObject', color: 'red'},
|
|
296
300
|
])
|
|
297
301
|
}
|
|
298
302
|
})
|
|
@@ -308,6 +312,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
|
|
|
308
312
|
ref={editorRef}
|
|
309
313
|
schemaType={schemaType}
|
|
310
314
|
value={initialValue}
|
|
315
|
+
keyGenerator={createTestKeyGenerator()}
|
|
311
316
|
/>,
|
|
312
317
|
)
|
|
313
318
|
|
|
@@ -345,7 +350,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
|
|
|
345
350
|
await waitFor(() => {
|
|
346
351
|
if (editorRef.current) {
|
|
347
352
|
expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
|
|
348
|
-
{_key: '
|
|
353
|
+
{_key: 'k2', _type: 'someObject', color: 'red'},
|
|
349
354
|
...initialValue,
|
|
350
355
|
])
|
|
351
356
|
}
|
|
@@ -366,6 +371,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
|
|
|
366
371
|
schemaType={schemaType}
|
|
367
372
|
value={value}
|
|
368
373
|
onChange={onChange}
|
|
374
|
+
keyGenerator={createTestKeyGenerator()}
|
|
369
375
|
/>,
|
|
370
376
|
)
|
|
371
377
|
|
|
@@ -402,7 +408,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
|
|
|
402
408
|
if (editorRef.current) {
|
|
403
409
|
expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
|
|
404
410
|
...value,
|
|
405
|
-
{_key: '
|
|
411
|
+
{_key: 'k2', _type: 'someObject', color: 'yellow'},
|
|
406
412
|
])
|
|
407
413
|
}
|
|
408
414
|
})
|
|
@@ -422,6 +428,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
|
|
|
422
428
|
schemaType={schemaType}
|
|
423
429
|
value={value}
|
|
424
430
|
onChange={onChange}
|
|
431
|
+
keyGenerator={createTestKeyGenerator()}
|
|
425
432
|
/>,
|
|
426
433
|
)
|
|
427
434
|
|
|
@@ -455,7 +462,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
|
|
|
455
462
|
if (editorRef.current) {
|
|
456
463
|
expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
|
|
457
464
|
value[0],
|
|
458
|
-
{_key: '
|
|
465
|
+
{_key: 'k2', _type: 'someObject', color: 'yellow'},
|
|
459
466
|
value[1],
|
|
460
467
|
])
|
|
461
468
|
}
|
|
@@ -473,6 +480,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
|
|
|
473
480
|
schemaType={schemaType}
|
|
474
481
|
value={value}
|
|
475
482
|
onChange={onChange}
|
|
483
|
+
keyGenerator={createTestKeyGenerator()}
|
|
476
484
|
/>,
|
|
477
485
|
)
|
|
478
486
|
|
|
@@ -504,7 +512,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
|
|
|
504
512
|
if (editorRef.current) {
|
|
505
513
|
expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
|
|
506
514
|
value[0],
|
|
507
|
-
{_key: '
|
|
515
|
+
{_key: 'k2', _type: 'someObject', color: 'yellow'},
|
|
508
516
|
])
|
|
509
517
|
}
|
|
510
518
|
})
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
PortableTextEditorTester,
|
|
7
7
|
schemaType,
|
|
8
8
|
} from '../../__tests__/PortableTextEditorTester'
|
|
9
|
+
import {createTestKeyGenerator} from '../../../internal-utils/test-key-generator'
|
|
9
10
|
import {PortableTextEditor} from '../../PortableTextEditor'
|
|
10
11
|
|
|
11
12
|
const INITIAL_VALUE: PortableTextBlock[] = [
|
|
@@ -31,6 +32,7 @@ describe('plugin:withEditableAPI: .isSelectionsOverlapping', () => {
|
|
|
31
32
|
const onChange = vi.fn()
|
|
32
33
|
render(
|
|
33
34
|
<PortableTextEditorTester
|
|
35
|
+
keyGenerator={createTestKeyGenerator()}
|
|
34
36
|
onChange={onChange}
|
|
35
37
|
ref={editorRef}
|
|
36
38
|
schemaType={schemaType}
|
|
@@ -65,6 +67,7 @@ describe('plugin:withEditableAPI: .isSelectionsOverlapping', () => {
|
|
|
65
67
|
const onChange = vi.fn()
|
|
66
68
|
render(
|
|
67
69
|
<PortableTextEditorTester
|
|
70
|
+
keyGenerator={createTestKeyGenerator()}
|
|
68
71
|
onChange={onChange}
|
|
69
72
|
ref={editorRef}
|
|
70
73
|
schemaType={schemaType}
|
|
@@ -99,6 +102,7 @@ describe('plugin:withEditableAPI: .isSelectionsOverlapping', () => {
|
|
|
99
102
|
const onChange = vi.fn()
|
|
100
103
|
render(
|
|
101
104
|
<PortableTextEditorTester
|
|
105
|
+
keyGenerator={createTestKeyGenerator()}
|
|
102
106
|
onChange={onChange}
|
|
103
107
|
ref={editorRef}
|
|
104
108
|
schemaType={schemaType}
|
|
@@ -133,6 +137,7 @@ describe('plugin:withEditableAPI: .isSelectionsOverlapping', () => {
|
|
|
133
137
|
const onChange = vi.fn()
|
|
134
138
|
render(
|
|
135
139
|
<PortableTextEditorTester
|
|
140
|
+
keyGenerator={createTestKeyGenerator()}
|
|
136
141
|
onChange={onChange}
|
|
137
142
|
ref={editorRef}
|
|
138
143
|
schemaType={schemaType}
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
PortableTextEditorTester,
|
|
6
6
|
schemaType,
|
|
7
7
|
} from '../../__tests__/PortableTextEditorTester'
|
|
8
|
+
import {createTestKeyGenerator} from '../../../internal-utils/test-key-generator'
|
|
8
9
|
import {PortableTextEditor} from '../../PortableTextEditor'
|
|
9
10
|
|
|
10
11
|
describe('plugin:withPortableTextLists', () => {
|
|
@@ -46,6 +47,7 @@ describe('plugin:withPortableTextLists', () => {
|
|
|
46
47
|
await waitFor(() => {
|
|
47
48
|
render(
|
|
48
49
|
<PortableTextEditorTester
|
|
50
|
+
keyGenerator={createTestKeyGenerator()}
|
|
49
51
|
onChange={onChange}
|
|
50
52
|
ref={editorRef}
|
|
51
53
|
schemaType={schemaType}
|