/* eslint-disable i18next/no-literal-string */ import { Button, Flex, Text } from '@invoke-ai/ui-library'; import { useAppStore } from 'app/store/nanostores/store'; import { useImageUploadButton } from 'common/hooks/useImageUploadButton'; import { newCanvasFromImageDndTarget } from 'features/dnd/dnd'; import { DndDropTarget } from 'features/dnd/DndDropTarget'; import { newCanvasFromImage } from 'features/imageActions/actions'; import { memo, useMemo } from 'react'; import { Trans } from 'react-i18next'; import { PiUploadBold } from 'react-icons/pi'; import type { ImageDTO } from 'services/api/types'; import type { Param0 } from 'tsafe'; const generateWithControlImageDndTargetData = newCanvasFromImageDndTarget.getData({ type: 'control_layer', withResize: true, }); export const GenerateWithControlImage = memo(() => { const { getState, dispatch } = useAppStore(); const useImageUploadButtonOptions = useMemo>( () => ({ onUpload: (imageDTO: ImageDTO) => { newCanvasFromImage({ imageDTO, type: 'control_layer', withResize: true, getState, dispatch }); }, allowMultiple: false, }), [dispatch, getState] ); const uploadApi = useImageUploadButton(useImageUploadButtonOptions); const components = useMemo( () => ({ UploadButton: (