import { useStateValue } from "@guanghechen/react-viewmodel"; import type { Definition, ImageReference } from "@yozora/ast"; import React from "react"; import { useNodeRendererContext, type INodeRenderer, astClasses } from "../context"; import { ImageRendererInner } from "./inner/ImageRendererInner"; /** * Render `imageReference`. * * @see https://www.npmjs.com/package/@yozora/ast#imageReference * @see https://www.npmjs.com/package/@yozora/tokenizer-image-reference */ export const ImageReferenceRenderer: INodeRenderer = props => { const { viewmodel } = useNodeRendererContext(); const definitionMap: Readonly> = useStateValue( viewmodel.definitionMap$, ); const { alt, srcSet, sizes, loading } = props as ImageReference & React.ImgHTMLAttributes; const definition = definitionMap[props.identifier]; const src: string = definition?.url ?? ""; const title: string | undefined = definition?.title; return ( ); };