import { Icon, Tooltip, cbModal } from "@contentstack/venus-components" import React, { PropsWithChildren, useCallback } from "react" import EmbedBtn from "./EmbedBtn" import ImageEditModal from "./ImageEditModal" import type { IRteElementType, IRteParam, } from "@contentstack/app-sdk/dist/src/RTE/types" import type { InsertResponse } from "~/types/imagevault" type ImageElementProps = PropsWithChildren & { element: IRteElementType & { attrs: InsertResponse } rte: IRteParam } export function ImageElement({ children, element, rte }: ImageElementProps) { const assetUrl = element.attrs.MediaConversions[0].Url const isSelected = rte?.selection?.isSelected() const isFocused = rte?.selection?.isFocused() const isHighlight = isFocused && isSelected const handleEdit = useCallback(() => { cbModal({ // @ts-expect-error: Component is badly typed component: (compProps) => ImageEditModal({ element, rte, path: rte.getPath(element), ...compProps, }), modalProps: { size: "max", style: { content: { maxHeight: "90dvh", maxWidth: "90dvw", width: "auto", }, overlay: {}, }, }, }) }, [element, rte]) const ToolTipButtons = () => { return (