|
- import { MenuItem } from "prosemirror-menu";
- import { buildMenuItems } from "prosemirror-example-setup";
-
- import { writeFreelySchema } from "./schema";
-
- function canInsert(state, nodeType, attrs) {
- let $from = state.selection.$from;
- for (let d = $from.depth; d >= 0; d--) {
- let index = $from.index(d);
- if ($from.node(d).canReplaceWith(index, index, nodeType, attrs))
- return true;
- }
- return false;
- }
-
- const ReadMoreItem = new MenuItem({
- label: "Read more",
- select: (state) => canInsert(state, writeFreelySchema.nodes.readmore),
- run(state, dispatch) {
- dispatch(
- state.tr.replaceSelectionWith(writeFreelySchema.nodes.readmore.create())
- );
- },
- });
-
- export const getMenu = () => {
- const menuContent = [
- ...buildMenuItems(writeFreelySchema).fullMenu,
- [ReadMoreItem],
- ];
- return menuContent;
- };
|