import { useEntity, useReplicache } from "src/replicache";
import "katex/dist/katex.min.css";
import { BlockLayout, BlockProps } from "./Block";
import Katex from "katex";
import { useMemo } from "react";
import { useUIState } from "src/useUIState";
import { theme } from "tailwind.config";
import { BaseTextareaBlock } from "./BaseTextareaBlock";
import { elementId } from "src/utils/elementId";
export function MathBlock(props: BlockProps) {
let content = useEntity(props.entityID, "block/math");
let focusedBlock = useUIState(
(s) => s.focusedEntity?.entityID === props.entityID,
);
let { rep } = useReplicache();
const { html, error } = useMemo(() => {
try {
const html = Katex.renderToString(content?.data.value || "", {
displayMode: true,
throwOnError: false,
errorColor: theme.colors["accent-contrast"],
});
return { html, error: undefined };
} catch (error) {
if (error instanceof Katex.ParseError || error instanceof TypeError) {
return { error };
}
throw error;
}
}, [content?.data.value]);
return focusedBlock ? (