@portabletext/editor
Version:
Portable Text Editor made in React
29 lines (25 loc) • 965 B
text/typescript
import {compileSchema, defineSchema} from '@portabletext/schema'
import {createTestKeyGenerator} from '@portabletext/test'
import type {EditorSnapshot} from '..'
export function createTestSnapshot(snapshot: {
context?: Partial<EditorSnapshot['context']>
decoratorState?: Partial<EditorSnapshot['decoratorState']>
}): EditorSnapshot {
const context = {
converters: snapshot.context?.converters ?? [],
schema: snapshot.context?.schema ?? compileSchema(defineSchema({})),
keyGenerator: snapshot.context?.keyGenerator ?? createTestKeyGenerator(),
readOnly: snapshot.context?.readOnly ?? false,
value: snapshot.context?.value ?? [],
selection: snapshot.context?.selection ?? null,
}
const blockIndexMap = new Map<string, number>()
snapshot.context?.value?.forEach((block, index) => {
blockIndexMap.set(block._key, index)
})
return {
blockIndexMap,
context,
decoratorState: snapshot?.decoratorState ?? {},
}
}