diff --git a/app/editor/components/SelectionToolbar.tsx b/app/editor/components/SelectionToolbar.tsx
index fc1b1e75b..763da2d69 100644
--- a/app/editor/components/SelectionToolbar.tsx
+++ b/app/editor/components/SelectionToolbar.tsx
@@ -3,10 +3,10 @@ import { EditorState, NodeSelection, TextSelection } from "prosemirror-state";
import * as React from "react";
import createAndInsertLink from "@shared/editor/commands/createAndInsertLink";
import filterExcessSeparators from "@shared/editor/lib/filterExcessSeparators";
-import getMarkRange from "@shared/editor/queries/getMarkRange";
-import isInCode from "@shared/editor/queries/isInCode";
-import isMarkActive from "@shared/editor/queries/isMarkActive";
-import isNodeActive from "@shared/editor/queries/isNodeActive";
+import { getMarkRange } from "@shared/editor/queries/getMarkRange";
+import { isInCode } from "@shared/editor/queries/isInCode";
+import { isMarkActive } from "@shared/editor/queries/isMarkActive";
+import { isNodeActive } from "@shared/editor/queries/isNodeActive";
import { getColumnIndex, getRowIndex } from "@shared/editor/queries/table";
import { MenuItem } from "@shared/editor/types";
import { creatingUrlPrefix } from "@shared/utils/urls";
diff --git a/app/editor/extensions/Keys.ts b/app/editor/extensions/Keys.ts
index 51ac58683..1544d051f 100644
--- a/app/editor/extensions/Keys.ts
+++ b/app/editor/extensions/Keys.ts
@@ -8,7 +8,7 @@ import {
Command,
} from "prosemirror-state";
import Extension from "@shared/editor/lib/Extension";
-import isInCode from "@shared/editor/queries/isInCode";
+import { isInCode } from "@shared/editor/queries/isInCode";
export default class Keys extends Extension {
get name() {
diff --git a/app/editor/extensions/PasteHandler.ts b/app/editor/extensions/PasteHandler.ts
index bc99a252a..2ddd2de3c 100644
--- a/app/editor/extensions/PasteHandler.ts
+++ b/app/editor/extensions/PasteHandler.ts
@@ -5,8 +5,8 @@ import { LANGUAGES } from "@shared/editor/extensions/Prism";
import Extension from "@shared/editor/lib/Extension";
import isMarkdown from "@shared/editor/lib/isMarkdown";
import normalizePastedMarkdown from "@shared/editor/lib/markdown/normalize";
-import isInCode from "@shared/editor/queries/isInCode";
-import isInList from "@shared/editor/queries/isInList";
+import { isInCode } from "@shared/editor/queries/isInCode";
+import { isInList } from "@shared/editor/queries/isInList";
import parseDocumentSlug from "@shared/utils/parseDocumentSlug";
import { isDocumentUrl, isUrl } from "@shared/utils/urls";
import stores from "~/stores";
diff --git a/app/editor/extensions/Suggestion.ts b/app/editor/extensions/Suggestion.ts
index e6c328dc2..491db01ee 100644
--- a/app/editor/extensions/Suggestion.ts
+++ b/app/editor/extensions/Suggestion.ts
@@ -5,7 +5,7 @@ import { EditorState, Plugin } from "prosemirror-state";
import { isInTable } from "prosemirror-tables";
import Extension from "@shared/editor/lib/Extension";
import { SuggestionsMenuPlugin } from "@shared/editor/plugins/Suggestions";
-import isInCode from "@shared/editor/queries/isInCode";
+import { isInCode } from "@shared/editor/queries/isInCode";
export default class Suggestion extends Extension {
state: {
diff --git a/app/editor/menus/divider.tsx b/app/editor/menus/divider.tsx
index 495b56942..384989ace 100644
--- a/app/editor/menus/divider.tsx
+++ b/app/editor/menus/divider.tsx
@@ -1,7 +1,7 @@
import { PageBreakIcon, HorizontalRuleIcon } from "outline-icons";
import { EditorState } from "prosemirror-state";
import * as React from "react";
-import isNodeActive from "@shared/editor/queries/isNodeActive";
+import { isNodeActive } from "@shared/editor/queries/isNodeActive";
import { MenuItem } from "@shared/editor/types";
import { Dictionary } from "~/hooks/useDictionary";
diff --git a/app/editor/menus/formatting.tsx b/app/editor/menus/formatting.tsx
index 85dd31502..e05bf55a4 100644
--- a/app/editor/menus/formatting.tsx
+++ b/app/editor/menus/formatting.tsx
@@ -20,10 +20,10 @@ import {
} from "outline-icons";
import { EditorState } from "prosemirror-state";
import * as React from "react";
-import isInCode from "@shared/editor/queries/isInCode";
-import isInList from "@shared/editor/queries/isInList";
-import isMarkActive from "@shared/editor/queries/isMarkActive";
-import isNodeActive from "@shared/editor/queries/isNodeActive";
+import { isInCode } from "@shared/editor/queries/isInCode";
+import { isInList } from "@shared/editor/queries/isInList";
+import { isMarkActive } from "@shared/editor/queries/isMarkActive";
+import { isNodeActive } from "@shared/editor/queries/isNodeActive";
import { MenuItem } from "@shared/editor/types";
import { Dictionary } from "~/hooks/useDictionary";
@@ -34,7 +34,6 @@ export default function formattingMenuItems(
dictionary: Dictionary
): MenuItem[] {
const { schema } = state;
- const isList = isInList(state);
const isCode = isInCode(state);
const isCodeBlock = isInCode(state, { onlyBlock: true });
const isEmpty = state.selection.empty;
@@ -152,13 +151,27 @@ export default function formattingMenuItems(
name: "outdentList",
tooltip: dictionary.outdent,
icon: ,
- visible: isList && isMobile,
+ visible:
+ isMobile && isInList(state, { types: ["ordered_list", "bullet_list"] }),
},
{
name: "indentList",
tooltip: dictionary.indent,
icon: ,
- visible: isList && isMobile,
+ visible:
+ isMobile && isInList(state, { types: ["ordered_list", "bullet_list"] }),
+ },
+ {
+ name: "outdentCheckboxList",
+ tooltip: dictionary.outdent,
+ icon: ,
+ visible: isMobile && isInList(state, { types: ["checkbox_list"] }),
+ },
+ {
+ name: "indentCheckboxList",
+ tooltip: dictionary.indent,
+ icon: ,
+ visible: isMobile && isInList(state, { types: ["checkbox_list"] }),
},
{
name: "separator",
diff --git a/app/editor/menus/image.tsx b/app/editor/menus/image.tsx
index 04bbe0bac..035b4f01d 100644
--- a/app/editor/menus/image.tsx
+++ b/app/editor/menus/image.tsx
@@ -9,7 +9,7 @@ import {
} from "outline-icons";
import { EditorState } from "prosemirror-state";
import * as React from "react";
-import isNodeActive from "@shared/editor/queries/isNodeActive";
+import { isNodeActive } from "@shared/editor/queries/isNodeActive";
import { MenuItem } from "@shared/editor/types";
import { Dictionary } from "~/hooks/useDictionary";
diff --git a/app/editor/menus/readOnly.tsx b/app/editor/menus/readOnly.tsx
index 2a9dd331e..bc096c80c 100644
--- a/app/editor/menus/readOnly.tsx
+++ b/app/editor/menus/readOnly.tsx
@@ -1,7 +1,7 @@
import { CommentIcon } from "outline-icons";
import { EditorState } from "prosemirror-state";
import * as React from "react";
-import isMarkActive from "@shared/editor/queries/isMarkActive";
+import { isMarkActive } from "@shared/editor/queries/isMarkActive";
import { MenuItem } from "@shared/editor/types";
import { Dictionary } from "~/hooks/useDictionary";
diff --git a/app/editor/menus/table.tsx b/app/editor/menus/table.tsx
index 5957dbc58..ae1b0654c 100644
--- a/app/editor/menus/table.tsx
+++ b/app/editor/menus/table.tsx
@@ -1,7 +1,7 @@
import { AlignFullWidthIcon, TrashIcon } from "outline-icons";
import { EditorState } from "prosemirror-state";
import * as React from "react";
-import isNodeActive from "@shared/editor/queries/isNodeActive";
+import { isNodeActive } from "@shared/editor/queries/isNodeActive";
import { MenuItem, TableLayout } from "@shared/editor/types";
import { Dictionary } from "~/hooks/useDictionary";
diff --git a/app/editor/menus/tableCol.tsx b/app/editor/menus/tableCol.tsx
index af16af38f..0f8450622 100644
--- a/app/editor/menus/tableCol.tsx
+++ b/app/editor/menus/tableCol.tsx
@@ -12,7 +12,7 @@ import {
import { EditorState } from "prosemirror-state";
import * as React from "react";
import styled from "styled-components";
-import isNodeActive from "@shared/editor/queries/isNodeActive";
+import { isNodeActive } from "@shared/editor/queries/isNodeActive";
import { MenuItem } from "@shared/editor/types";
import { Dictionary } from "~/hooks/useDictionary";
diff --git a/shared/editor/commands/codeFence.ts b/shared/editor/commands/codeFence.ts
index be5294d57..2d4cdf217 100644
--- a/shared/editor/commands/codeFence.ts
+++ b/shared/editor/commands/codeFence.ts
@@ -1,5 +1,5 @@
import { Command, TextSelection } from "prosemirror-state";
-import isInCode from "../queries/isInCode";
+import { isInCode } from "../queries/isInCode";
/**
* Moves the current selection to the previous newline, this is used inside
diff --git a/shared/editor/commands/deleteEmptyFirstParagraph.ts b/shared/editor/commands/deleteEmptyFirstParagraph.ts
index 3a706fac5..e8fdc43d2 100644
--- a/shared/editor/commands/deleteEmptyFirstParagraph.ts
+++ b/shared/editor/commands/deleteEmptyFirstParagraph.ts
@@ -1,5 +1,5 @@
import { Command } from "prosemirror-state";
-import isNodeActive from "../queries/isNodeActive";
+import { isNodeActive } from "../queries/isNodeActive";
/**
* Deletes the first paragraph node if it is empty and the cursor is at the
diff --git a/shared/editor/commands/splitHeading.ts b/shared/editor/commands/splitHeading.ts
index 61d300a8d..e65769bf2 100644
--- a/shared/editor/commands/splitHeading.ts
+++ b/shared/editor/commands/splitHeading.ts
@@ -1,7 +1,7 @@
import { NodeType } from "prosemirror-model";
import { Command, TextSelection } from "prosemirror-state";
import { findBlockNodes } from "../queries/findChildren";
-import findCollapsedNodes from "../queries/findCollapsedNodes";
+import { findCollapsedNodes } from "../queries/findCollapsedNodes";
export default function splitHeading(type: NodeType): Command {
return (state, dispatch): boolean => {
diff --git a/shared/editor/commands/toggleBlockType.ts b/shared/editor/commands/toggleBlockType.ts
index 50af07e5e..326232f51 100644
--- a/shared/editor/commands/toggleBlockType.ts
+++ b/shared/editor/commands/toggleBlockType.ts
@@ -1,7 +1,7 @@
import { setBlockType } from "prosemirror-commands";
import { NodeType } from "prosemirror-model";
import { Command } from "prosemirror-state";
-import isNodeActive from "../queries/isNodeActive";
+import { isNodeActive } from "../queries/isNodeActive";
/**
* Toggles the block type of the current selection between the given type and the toggle type.
diff --git a/shared/editor/commands/toggleList.ts b/shared/editor/commands/toggleList.ts
index a5db03a0f..0895d5fc5 100644
--- a/shared/editor/commands/toggleList.ts
+++ b/shared/editor/commands/toggleList.ts
@@ -3,7 +3,7 @@ import { wrapInList, liftListItem } from "prosemirror-schema-list";
import { Command } from "prosemirror-state";
import { chainTransactions } from "../lib/chainTransactions";
import { findParentNode } from "../queries/findParentNode";
-import isList from "../queries/isList";
+import { isList } from "../queries/isList";
import clearNodes from "./clearNodes";
export default function toggleList(
diff --git a/shared/editor/commands/toggleWrap.ts b/shared/editor/commands/toggleWrap.ts
index bf52e4d0b..cbd47d3a3 100644
--- a/shared/editor/commands/toggleWrap.ts
+++ b/shared/editor/commands/toggleWrap.ts
@@ -2,7 +2,7 @@ import { wrapIn, lift } from "prosemirror-commands";
import { NodeType } from "prosemirror-model";
import { Command } from "prosemirror-state";
import { Primitive } from "utility-types";
-import isNodeActive from "../queries/isNodeActive";
+import { isNodeActive } from "../queries/isNodeActive";
export default function toggleWrap(
type: NodeType,
diff --git a/shared/editor/lib/InputRule.ts b/shared/editor/lib/InputRule.ts
index fb1f472df..a7d4e3b29 100644
--- a/shared/editor/lib/InputRule.ts
+++ b/shared/editor/lib/InputRule.ts
@@ -1,6 +1,6 @@
import { InputRule as ProsemirrorInputRule } from "prosemirror-inputrules";
import { EditorState } from "prosemirror-state";
-import isInCode from "../queries/isInCode";
+import { isInCode } from "../queries/isInCode";
/**
* A factory function for creating Prosemirror input rules that automatically insert text
diff --git a/shared/editor/marks/Comment.ts b/shared/editor/marks/Comment.ts
index e22097f78..84fac3518 100644
--- a/shared/editor/marks/Comment.ts
+++ b/shared/editor/marks/Comment.ts
@@ -4,7 +4,7 @@ import { Command, Plugin } from "prosemirror-state";
import { v4 as uuidv4 } from "uuid";
import collapseSelection from "../commands/collapseSelection";
import { chainTransactions } from "../lib/chainTransactions";
-import isMarkActive from "../queries/isMarkActive";
+import { isMarkActive } from "../queries/isMarkActive";
import Mark from "./Mark";
export default class Comment extends Mark {
diff --git a/shared/editor/marks/Link.tsx b/shared/editor/marks/Link.tsx
index 53a124444..0aabea525 100644
--- a/shared/editor/marks/Link.tsx
+++ b/shared/editor/marks/Link.tsx
@@ -12,8 +12,8 @@ import { Command, EditorState, Plugin, TextSelection } from "prosemirror-state";
import { EditorView } from "prosemirror-view";
import { toast } from "sonner";
import { sanitizeUrl } from "../../utils/urls";
-import getMarkRange from "../queries/getMarkRange";
-import isMarkActive from "../queries/isMarkActive";
+import { getMarkRange } from "../queries/getMarkRange";
+import { isMarkActive } from "../queries/isMarkActive";
import { EventType } from "../types";
import Mark from "./Mark";
diff --git a/shared/editor/marks/Placeholder.ts b/shared/editor/marks/Placeholder.ts
index bacc1e56f..bef2a7cf3 100644
--- a/shared/editor/marks/Placeholder.ts
+++ b/shared/editor/marks/Placeholder.ts
@@ -1,6 +1,6 @@
import { MarkSpec } from "prosemirror-model";
import { Plugin, TextSelection } from "prosemirror-state";
-import getMarkRange from "../queries/getMarkRange";
+import { getMarkRange } from "../queries/getMarkRange";
import markRule from "../rules/mark";
import Mark from "./Mark";
diff --git a/shared/editor/nodes/Blockquote.ts b/shared/editor/nodes/Blockquote.ts
index 564f95f49..d0517aa5c 100644
--- a/shared/editor/nodes/Blockquote.ts
+++ b/shared/editor/nodes/Blockquote.ts
@@ -3,7 +3,7 @@ import { NodeSpec, Node as ProsemirrorNode, NodeType } from "prosemirror-model";
import { Command } from "prosemirror-state";
import toggleWrap from "../commands/toggleWrap";
import { MarkdownSerializerState } from "../lib/markdown/serializer";
-import isNodeActive from "../queries/isNodeActive";
+import { isNodeActive } from "../queries/isNodeActive";
import Node from "./Node";
export default class Blockquote extends Node {
diff --git a/shared/editor/nodes/CheckboxItem.ts b/shared/editor/nodes/CheckboxItem.ts
index bf743eeef..88edc5c6f 100644
--- a/shared/editor/nodes/CheckboxItem.ts
+++ b/shared/editor/nodes/CheckboxItem.ts
@@ -88,6 +88,13 @@ export default class CheckboxItem extends Node {
}
};
+ commands({ type }: { type: NodeType }) {
+ return {
+ indentCheckboxList: () => sinkListItem(type),
+ outdentCheckboxList: () => liftListItem(type),
+ };
+ }
+
keys({ type }: { type: NodeType }) {
return {
Enter: splitListItem(type, {
diff --git a/shared/editor/nodes/CodeFence.ts b/shared/editor/nodes/CodeFence.ts
index c71874d05..6b22ec3e9 100644
--- a/shared/editor/nodes/CodeFence.ts
+++ b/shared/editor/nodes/CodeFence.ts
@@ -76,8 +76,8 @@ import Prism from "../extensions/Prism";
import { isCode } from "../lib/isCode";
import { MarkdownSerializerState } from "../lib/markdown/serializer";
import { findParentNode } from "../queries/findParentNode";
-import getMarkRange from "../queries/getMarkRange";
-import isInCode from "../queries/isInCode";
+import { getMarkRange } from "../queries/getMarkRange";
+import { isInCode } from "../queries/isInCode";
import Node from "./Node";
const PERSISTENCE_KEY = "rme-code-language";
diff --git a/shared/editor/nodes/HardBreak.ts b/shared/editor/nodes/HardBreak.ts
index d0bc82ba2..4b3bbc23b 100644
--- a/shared/editor/nodes/HardBreak.ts
+++ b/shared/editor/nodes/HardBreak.ts
@@ -2,8 +2,8 @@ import { NodeSpec, NodeType } from "prosemirror-model";
import { Command } from "prosemirror-state";
import { isInTable } from "prosemirror-tables";
import { MarkdownSerializerState } from "../lib/markdown/serializer";
-import isInCode from "../queries/isInCode";
-import isNodeActive from "../queries/isNodeActive";
+import { isInCode } from "../queries/isInCode";
+import { isNodeActive } from "../queries/isNodeActive";
import breakRule from "../rules/breaks";
import Node from "./Node";
diff --git a/shared/editor/nodes/ListItem.ts b/shared/editor/nodes/ListItem.ts
index e2946635f..6fdaa737c 100644
--- a/shared/editor/nodes/ListItem.ts
+++ b/shared/editor/nodes/ListItem.ts
@@ -14,9 +14,9 @@ import {
import { DecorationSet, Decoration } from "prosemirror-view";
import { MarkdownSerializerState } from "../lib/markdown/serializer";
import { findParentNodeClosestToPos } from "../queries/findParentNode";
-import getParentListItem from "../queries/getParentListItem";
-import isInList from "../queries/isInList";
-import isList from "../queries/isList";
+import { getParentListItem } from "../queries/getParentListItem";
+import { isInList } from "../queries/isInList";
+import { isList } from "../queries/isList";
import Node from "./Node";
export default class ListItem extends Node {
diff --git a/shared/editor/plugins/FoldingHeaders.ts b/shared/editor/plugins/FoldingHeaders.ts
index edf7a8690..4c4331672 100644
--- a/shared/editor/plugins/FoldingHeaders.ts
+++ b/shared/editor/plugins/FoldingHeaders.ts
@@ -3,7 +3,7 @@ import { Decoration, DecorationSet } from "prosemirror-view";
import Storage from "../../utils/Storage";
import { headingToPersistenceKey } from "../lib/headingToSlug";
import { findBlockNodes } from "../queries/findChildren";
-import findCollapsedNodes from "../queries/findCollapsedNodes";
+import { findCollapsedNodes } from "../queries/findCollapsedNodes";
export class FoldingHeadersPlugin extends Plugin {
constructor(documentId: string | undefined) {
diff --git a/shared/editor/queries/findCollapsedNodes.ts b/shared/editor/queries/findCollapsedNodes.ts
index fec130cc7..4ca42dcf7 100644
--- a/shared/editor/queries/findCollapsedNodes.ts
+++ b/shared/editor/queries/findCollapsedNodes.ts
@@ -1,7 +1,7 @@
import { Node } from "prosemirror-model";
import { findBlockNodes, NodeWithPos } from "./findChildren";
-export default function findCollapsedNodes(doc: Node): NodeWithPos[] {
+export function findCollapsedNodes(doc: Node): NodeWithPos[] {
const blocks = findBlockNodes(doc);
const nodes: NodeWithPos[] = [];
diff --git a/shared/editor/queries/getMarkRange.ts b/shared/editor/queries/getMarkRange.ts
index c5a057304..825ff9b22 100644
--- a/shared/editor/queries/getMarkRange.ts
+++ b/shared/editor/queries/getMarkRange.ts
@@ -1,6 +1,6 @@
import { ResolvedPos, MarkType } from "prosemirror-model";
-export default function getMarkRange($pos?: ResolvedPos, type?: MarkType) {
+export function getMarkRange($pos?: ResolvedPos, type?: MarkType) {
if (!$pos || !type) {
return false;
}
diff --git a/shared/editor/queries/getParentListItem.ts b/shared/editor/queries/getParentListItem.ts
index 9ae354ebc..60e83667f 100644
--- a/shared/editor/queries/getParentListItem.ts
+++ b/shared/editor/queries/getParentListItem.ts
@@ -1,9 +1,7 @@
import { Node } from "prosemirror-model";
import { EditorState } from "prosemirror-state";
-export default function getParentListItem(
- state: EditorState
-): [Node, number] | void {
+export function getParentListItem(state: EditorState): [Node, number] | void {
const $head = state.selection.$head;
for (let d = $head.depth; d > 0; d--) {
const node = $head.node(d);
diff --git a/shared/editor/queries/isInCode.ts b/shared/editor/queries/isInCode.ts
index e9c6ba30b..fd9a8f9ab 100644
--- a/shared/editor/queries/isInCode.ts
+++ b/shared/editor/queries/isInCode.ts
@@ -1,6 +1,6 @@
import { EditorState } from "prosemirror-state";
-import isMarkActive from "./isMarkActive";
-import isNodeActive from "./isNodeActive";
+import { isMarkActive } from "./isMarkActive";
+import { isNodeActive } from "./isNodeActive";
type Options = {
/** Only check if the selection is inside a code block. */
@@ -16,10 +16,7 @@ type Options = {
* @param options The options.
* @returns True if the selection is inside a code block or code mark.
*/
-export default function isInCode(
- state: EditorState,
- options?: Options
-): boolean {
+export function isInCode(state: EditorState, options?: Options): boolean {
const { nodes, marks } = state.schema;
if (!options?.onlyMark) {
diff --git a/shared/editor/queries/isInList.ts b/shared/editor/queries/isInList.ts
index d7c3a3290..b79a0f4a8 100644
--- a/shared/editor/queries/isInList.ts
+++ b/shared/editor/queries/isInList.ts
@@ -1,12 +1,19 @@
import { EditorState } from "prosemirror-state";
-export default function isInList(state: EditorState) {
+/**
+ * Check if the current selection is in a list
+ *
+ * @param state - The current editor state
+ * @param options - Optionally check for specific list types
+ */
+export function isInList(state: EditorState, options?: { types: string[] }) {
const $head = state.selection.$head;
for (let d = $head.depth; d > 0; d--) {
if (
- ["ordered_list", "bullet_list", "checkbox_list"].includes(
- $head.node(d).type.name
- )
+ (options?.types
+ ? options.types
+ : ["ordered_list", "bullet_list", "checkbox_list"]
+ ).includes($head.node(d).type.name)
) {
return true;
}
diff --git a/shared/editor/queries/isList.ts b/shared/editor/queries/isList.ts
index 703199845..de814184e 100644
--- a/shared/editor/queries/isList.ts
+++ b/shared/editor/queries/isList.ts
@@ -1,6 +1,6 @@
import { Node, Schema } from "prosemirror-model";
-export default function isList(node: Node, schema: Schema) {
+export function isList(node: Node, schema: Schema) {
return (
node.type === schema.nodes.bullet_list ||
node.type === schema.nodes.ordered_list ||
diff --git a/shared/editor/queries/isMarkActive.ts b/shared/editor/queries/isMarkActive.ts
index 01f69c082..eb646e860 100644
--- a/shared/editor/queries/isMarkActive.ts
+++ b/shared/editor/queries/isMarkActive.ts
@@ -1,7 +1,7 @@
import { MarkType } from "prosemirror-model";
import { EditorState } from "prosemirror-state";
-const isMarkActive =
+export const isMarkActive =
(type: MarkType) =>
(state: EditorState): boolean => {
if (!type) {
@@ -14,5 +14,3 @@ const isMarkActive =
? type.isInSet(state.storedMarks || $from.marks())
: state.doc.rangeHasMark(from, to, type));
};
-
-export default isMarkActive;
diff --git a/shared/editor/queries/isNodeActive.ts b/shared/editor/queries/isNodeActive.ts
index cad4a16bf..96c288bc6 100644
--- a/shared/editor/queries/isNodeActive.ts
+++ b/shared/editor/queries/isNodeActive.ts
@@ -3,7 +3,7 @@ import { EditorState } from "prosemirror-state";
import { Primitive } from "utility-types";
import { findParentNode } from "./findParentNode";
-const isNodeActive =
+export const isNodeActive =
(type: NodeType, attrs: Record = {}) =>
(state: EditorState) => {
if (!type) {
@@ -26,5 +26,3 @@ const isNodeActive =
return node.hasMarkup(type, { ...node.attrs, ...attrs });
};
-
-export default isNodeActive;