| 1234567891011121314151617181920212223 |
- import { Plugin } from 'prosemirror-state';
- import { Decoration, DecorationSet } from 'prosemirror-view';
- import type { Node } from 'prosemirror-model';
- const isEmptyParagraph = (node: Node) => {
- return node.type.name === 'paragraph' && node.nodeSize === 2;
- };
- export const placeholderPlugin = (placeholder: string) => {
- return new Plugin({
- props: {
- decorations(state) {
- const { $from } = state.selection;
- if (isEmptyParagraph($from.parent)) {
- const decoration = Decoration.node($from.before(), $from.after(), {
- 'data-placeholder': placeholder,
- });
- return DecorationSet.create(state.doc, [decoration]);
- }
- },
- },
- });
- };
|