@edtr-io/plugin-text
Version:
## Table of contents
35 lines (29 loc) • 1.1 kB
text/typescript
import { ListsEditor, ListType } from '@prezly/slate-lists'
import { Editor as SlateEditor } from 'slate'
import { selectionHasElement } from './selection'
export function isOrderedListActive(editor: SlateEditor) {
return selectionHasElement((e) => e.type === 'ordered-list', editor)
}
export function isUnorderedListActive(editor: SlateEditor) {
return selectionHasElement((e) => e.type === 'unordered-list', editor)
}
export function toggleOrderedList(editor: SlateEditor) {
if (isUnorderedListActive(editor)) {
ListsEditor.unwrapList(editor)
ListsEditor.wrapInList(editor, ListType.ORDERED)
} else if (isOrderedListActive(editor)) {
ListsEditor.unwrapList(editor)
} else {
ListsEditor.wrapInList(editor, ListType.ORDERED)
}
}
export function toggleUnorderedList(editor: SlateEditor) {
if (isOrderedListActive(editor)) {
ListsEditor.unwrapList(editor)
ListsEditor.wrapInList(editor, ListType.UNORDERED)
} else if (isUnorderedListActive(editor)) {
ListsEditor.unwrapList(editor)
} else {
ListsEditor.wrapInList(editor, ListType.UNORDERED)
}
}