"use client"; import { useEquationElement, useEquationInput } from "@platejs/math/react"; import { RadicalIcon } from "lucide-react"; import type { TEquationElement } from "platejs"; import { PlateElement, type PlateElementProps, useSelected } from "platejs/react"; import * as React from "react"; import { cn } from "@/lib/utils"; export function EquationElement({ children, ...props }: PlateElementProps) { const element = props.element; const selected = useSelected(); const katexRef = React.useRef(null); const [isEditing, setIsEditing] = React.useState(false); useEquationElement({ element, katexRef, options: { displayMode: true, throwOnError: false, }, }); const { props: inputProps, ref: inputRef, onDismiss, onSubmit, } = useEquationInput({ isInline: false, open: isEditing, onClose: () => setIsEditing(false), }); return (
setIsEditing(true)} > {element.texExpression ? (
) : (
Add an equation
)}
{isEditing && (