mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-02-16 16:35:05 -05:00
63 lines
2.1 KiB
TypeScript
63 lines
2.1 KiB
TypeScript
import { skipToken } from '@reduxjs/toolkit/query';
|
|
import { parseAndRecallAllMetadata } from 'features/metadata/util/handlers';
|
|
import { toast } from 'features/toast/toast';
|
|
import { t } from 'i18next';
|
|
import { useCallback, useEffect } from 'react';
|
|
import { useGetImageDTOQuery, useGetImageMetadataQuery } from 'services/api/endpoints/images';
|
|
|
|
export const usePreselectedImage = (selectedImage?: {
|
|
imageName: string;
|
|
action: 'sendToImg2Img' | 'sendToCanvas' | 'useAllParameters';
|
|
}) => {
|
|
const { currentData: selectedImageDto } = useGetImageDTOQuery(selectedImage?.imageName ?? skipToken);
|
|
|
|
const { currentData: selectedImageMetadata } = useGetImageMetadataQuery(selectedImage?.imageName ?? skipToken);
|
|
|
|
const handleSendToCanvas = useCallback(() => {
|
|
if (selectedImageDto) {
|
|
// TODO(psyche): handle send to canvas
|
|
// dispatch(setInitialCanvasImage(selectedImageDto, optimalDimension));
|
|
// dispatch(setActiveTab('canvas'));
|
|
toast({
|
|
id: 'SENT_TO_CANVAS',
|
|
title: t('toast.sentToUnifiedCanvas'),
|
|
status: 'info',
|
|
});
|
|
}
|
|
}, [selectedImageDto]);
|
|
|
|
const handleSendToImg2Img = useCallback(() => {
|
|
if (selectedImageDto) {
|
|
// TODO(psyche): handle send to img2img
|
|
// dispatch(iiLayerAdded(selectedImageDto));
|
|
// dispatch(setActiveTab('generation'));
|
|
}
|
|
}, [selectedImageDto]);
|
|
|
|
const handleUseAllMetadata = useCallback(() => {
|
|
if (selectedImageMetadata) {
|
|
parseAndRecallAllMetadata(selectedImageMetadata, true);
|
|
}
|
|
}, [selectedImageMetadata]);
|
|
|
|
useEffect(() => {
|
|
if (selectedImage && selectedImage.action === 'sendToCanvas') {
|
|
handleSendToCanvas();
|
|
}
|
|
}, [selectedImage, handleSendToCanvas]);
|
|
|
|
useEffect(() => {
|
|
if (selectedImage && selectedImage.action === 'sendToImg2Img') {
|
|
handleSendToImg2Img();
|
|
}
|
|
}, [selectedImage, handleSendToImg2Img]);
|
|
|
|
useEffect(() => {
|
|
if (selectedImage && selectedImage.action === 'useAllParameters') {
|
|
handleUseAllMetadata();
|
|
}
|
|
}, [selectedImage, handleUseAllMetadata]);
|
|
|
|
return { handleSendToCanvas, handleSendToImg2Img, handleUseAllMetadata };
|
|
};
|