diff --git a/gui/src/components/ImageCard.tsx b/gui/src/components/ImageCard.tsx new file mode 100644 index 00000000..b5a841b1 --- /dev/null +++ b/gui/src/components/ImageCard.tsx @@ -0,0 +1,49 @@ +import { Card, CardContent, CardMedia, List, Paper, Stack, Typography } from '@mui/material'; +import * as React from 'react'; +import { UseMutationResult } from 'react-query'; + +import { ApiResponse } from '../api/client.js'; + +export interface ImageCardProps { + result: UseMutationResult; +} + +export function ImageCard(props: ImageCardProps) { + const { result } = props; + + if (result.status === 'error') { + if (result.error instanceof Error) { + return
{result.error.message}
; + } else { + return
Unknown error generating image.
; + } + } + + if (result.status === 'loading') { + return
Generating...
; + } + + if (result.status === 'success') { + const { data } = result; + const { params, output } = data; + + return + + + + + CFG: {params.cfg} + Steps: {params.steps} + Seed: {params.seed} + + + + ; + } + + return
No result. Press Generate.
; +} diff --git a/gui/src/components/Txt2Img.tsx b/gui/src/components/Txt2Img.tsx index 55184b18..ea16edb9 100644 --- a/gui/src/components/Txt2Img.tsx +++ b/gui/src/components/Txt2Img.tsx @@ -3,6 +3,7 @@ import * as React from 'react'; import { useMutation, useQuery } from 'react-query'; import { ApiClient } from '../api/client.js'; +import { ImageCard } from './ImageCard.js'; import { ImageControl, ImageParams } from './ImageControl.js'; import { QueryList } from './QueryList.js'; @@ -61,23 +62,6 @@ export function Txt2Img(props: Txt2ImgProps) { const [scheduler, setScheduler] = useState('euler-a'); const [platform, setPlatform] = useState('cpu'); - function renderImage() { - switch (generate.status) { - case 'error': - if (generate.error instanceof Error) { - return
{generate.error.message}
; - } else { - return
Unknown error generating image.
; - } - case 'loading': - return
Generating...
; - case 'success': - return ; - default: - return
No result. Press Generate.
; - } - } - return @@ -99,7 +83,7 @@ export function Txt2Img(props: Txt2ImgProps) { setPrompt(event.target.value); }} /> - {renderImage()} + ; }