Files
linsa-linsa-io/web/shared/editor/hooks/use-text-menu-states.ts
2024-10-28 11:10:25 +07:00

27 lines
639 B
TypeScript

import * as React from "react"
import { Editor } from "@tiptap/react"
import { ShouldShowProps } from "../types"
import { isTextSelected } from "../lib/utils"
export const useTextmenuStates = (editor: Editor) => {
const shouldShow = React.useCallback(
({ view }: ShouldShowProps) => {
if (!view) {
return false
}
return isTextSelected(editor)
},
[editor],
)
return {
isBold: editor.isActive("bold"),
isItalic: editor.isActive("italic"),
isStrike: editor.isActive("strike"),
isUnderline: editor.isActive("underline"),
isCode: editor.isActive("code"),
shouldShow,
}
}