| 1234567891011121314151617181920212223242526272829 |
- import { Compartment, EditorState, TransactionSpec } from '@codemirror/state'
- import { EditorView } from '@codemirror/view'
- const readOnlyConf = new Compartment()
- /**
- * A custom extension which determines whether the content is editable, by setting the value of the EditorState.readOnly and EditorView.editable facets.
- * Commands and extensions read the EditorState.readOnly facet to decide whether they should be applied.
- * EditorView.editable determines whether the DOM can be focused, by changing the value of the contenteditable attribute.
- */
- export const editable = () => {
- return [
- readOnlyConf.of([
- EditorState.readOnly.of(true),
- EditorView.editable.of(false),
- ]),
- ]
- }
- export const setEditable = (value = true): TransactionSpec => {
- return {
- effects: [
- readOnlyConf.reconfigure([
- EditorState.readOnly.of(!value),
- EditorView.editable.of(value),
- ]),
- ],
- }
- }
|