import { isTextSelection } from "@tiptap/core" import { Editor } from "@tiptap/react" export const isTextSelected = ({ editor }: { editor: Editor }) => { const { state: { doc, selection, selection: { empty, from, to } } } = editor // Sometime check for `empty` is not enough. // Doubleclick an empty paragraph returns a node size of 2. // So we check also for an empty text size. const isEmptyTextBlock = !doc.textBetween(from, to).length && isTextSelection(selection) if (empty || isEmptyTextBlock || !editor.isEditable) { return false } return true } export default isTextSelected