import { h, Fragment, type Ref, defineComponent } from 'vue' import type { InlineImageConfig } from '../config' import { ImageInput } from '../../__internal__/components/image-input' import { keepAlive } from '../../__internal__/keep-alive' keepAlive(h, Fragment) type Attrs = { src: string alt: string title: string } type MilkdownImageInlineProps = { selected: Ref readonly: Ref setAttr: (attr: T, value: Attrs[T]) => void config: InlineImageConfig } & { [P in keyof Attrs]: Ref } export const MilkdownImageInline = defineComponent({ props: { src: { type: Object, required: true, }, alt: { type: Object, required: true, }, title: { type: Object, required: true, }, selected: { type: Object, required: true, }, readonly: { type: Object, required: true, }, setAttr: { type: Function, required: true, }, config: { type: Object, required: true, }, }, setup(props) { const { src, alt, title } = props return () => { if (!src.value?.length) { return ( props.setAttr('src', link)} imageIcon={props.config.imageIcon} uploadButton={props.config.uploadButton} confirmButton={props.config.confirmButton} uploadPlaceholderText={props.config.uploadPlaceholderText} onUpload={props.config.onUpload} className="empty-image-inline" /> ) } return ( {alt.value} ) } }, })