import { store as blockEditorStore } from '@wordpress/block-editor'; import { Button, Spinner } from '@wordpress/components'; import { useSelect, useDispatch } from '@wordpress/data'; import { store as editPostStore } from '@wordpress/edit-post'; import { useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { AnimatePresence, motion } from 'framer-motion'; import { addImageToBlock, downloadImage } from '@draft/api/WPApi'; export const ImagePreview = ({ prompt, size, isGenerating, id, src, clearImageResponse, }) => { const { openGeneralSidebar } = useDispatch(editPostStore); const { updateBlockAttributes } = useDispatch(blockEditorStore); const [isInserting, setIsInserting] = useState(false); const selectedBlock = useSelect( (select) => select(blockEditorStore).getSelectedBlock(), [], ); const [imgWidth, imgHeight] = size.split('x'); const handleInsert = async (event) => { event.preventDefault(); setIsInserting(true); const image = await downloadImage(id, src, 'ai-generated'); if (!image) return; await addImageToBlock(selectedBlock, image, updateBlockAttributes); setIsInserting(false); openGeneralSidebar('edit-post/block'); clearImageResponse(); }; if (src === '' && !isGenerating) return null; return (
{__('Generating your image: ', 'extendify-local')} "{prompt}"
) : ( )}