fix(lint): style issues in gui
This commit is contained in:
parent
c6579b7168
commit
cd36172a3c
|
@ -19,8 +19,10 @@ export interface ApiClient {
|
||||||
txt2img(params: Txt2ImgParams): Promise<string>;
|
txt2img(params: Txt2ImgParams): Promise<string>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const STATUS_SUCCESS = 200;
|
||||||
|
|
||||||
export async function imageFromResponse(res: Response) {
|
export async function imageFromResponse(res: Response) {
|
||||||
if (res.status === 200) {
|
if (res.status === STATUS_SUCCESS) {
|
||||||
const imageBlob = await res.blob();
|
const imageBlob = await res.blob();
|
||||||
return URL.createObjectURL(imageBlob);
|
return URL.createObjectURL(imageBlob);
|
||||||
} else {
|
} else {
|
||||||
|
@ -34,7 +36,6 @@ export function makeClient(root: string, f = fetch): ApiClient {
|
||||||
return {
|
return {
|
||||||
async txt2img(params: Txt2ImgParams): Promise<string> {
|
async txt2img(params: Txt2ImgParams): Promise<string> {
|
||||||
if (doesExist(pending)) {
|
if (doesExist(pending)) {
|
||||||
console.log('skipping request, one is already pending');
|
|
||||||
return pending;
|
return pending;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,12 +61,12 @@ export function makeClient(root: string, f = fetch): ApiClient {
|
||||||
|
|
||||||
url.searchParams.append('prompt', params.prompt);
|
url.searchParams.append('prompt', params.prompt);
|
||||||
|
|
||||||
pending = f(url).then((res) => {
|
pending = f(url).then((res) => imageFromResponse(res)).finally(() => {
|
||||||
pending = undefined;
|
pending = undefined;
|
||||||
return imageFromResponse(res);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-return-await
|
||||||
return await pending;
|
return await pending;
|
||||||
},
|
},
|
||||||
}
|
};
|
||||||
}
|
}
|
|
@ -24,9 +24,8 @@ export function Txt2Img(props: Txt2ImgProps) {
|
||||||
const [scheduler, setScheduler] = useState('euler-a');
|
const [scheduler, setScheduler] = useState('euler-a');
|
||||||
|
|
||||||
async function getImage() {
|
async function getImage() {
|
||||||
const image = await client.txt2img({ ...params, prompt, scheduler });
|
const data = await client.txt2img({ ...params, prompt, scheduler });
|
||||||
console.log(prompt, image);
|
setImage(data);
|
||||||
setImage(image);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderImage() {
|
function renderImage() {
|
||||||
|
@ -54,8 +53,8 @@ export function Txt2Img(props: Txt2ImgProps) {
|
||||||
<MenuItem value='euler-a'>Euler A</MenuItem>
|
<MenuItem value='euler-a'>Euler A</MenuItem>
|
||||||
<MenuItem value='dpm-multi'>DPM</MenuItem>
|
<MenuItem value='dpm-multi'>DPM</MenuItem>
|
||||||
</Select>
|
</Select>
|
||||||
<ImageControl params={params} onChange={(params) => {
|
<ImageControl params={params} onChange={(newParams) => {
|
||||||
setParams(params);
|
setParams(newParams);
|
||||||
}} />
|
}} />
|
||||||
<TextField label="Prompt" variant="outlined" value={prompt} onChange={(event) => {
|
<TextField label="Prompt" variant="outlined" value={prompt} onChange={(event) => {
|
||||||
setPrompt(event.target.value);
|
setPrompt(event.target.value);
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
|
/* eslint-disable no-console */
|
||||||
import { mustExist } from '@apextoaster/js-utils';
|
import { mustExist } from '@apextoaster/js-utils';
|
||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import ReactDOM from 'react-dom/client';
|
import ReactDOM from 'react-dom/client';
|
||||||
|
|
||||||
import { makeClient } from './api/client.js';
|
import { makeClient, STATUS_SUCCESS } from './api/client.js';
|
||||||
import { OnnxWeb } from './components/OnnxWeb.js';
|
import { OnnxWeb } from './components/OnnxWeb.js';
|
||||||
|
|
||||||
export interface Config {
|
export interface Config {
|
||||||
api: {
|
api: {
|
||||||
root: string;
|
root: string;
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function loadConfig() {
|
export async function loadConfig() {
|
||||||
const configPath = new URL('./config.json', window.origin);
|
const configPath = new URL('./config.json', window.origin);
|
||||||
const configReq = await fetch(configPath);
|
const configReq = await fetch(configPath);
|
||||||
if (configReq.status === 200) {
|
if (configReq.status === STATUS_SUCCESS) {
|
||||||
return configReq.json();
|
return configReq.json();
|
||||||
} else {
|
} else {
|
||||||
throw new Error('could not load config');
|
throw new Error('could not load config');
|
||||||
|
@ -32,5 +33,7 @@ export async function main() {
|
||||||
|
|
||||||
window.addEventListener('load', () => {
|
window.addEventListener('load', () => {
|
||||||
console.log('launching onnx-web');
|
console.log('launching onnx-web');
|
||||||
main();
|
main().catch((err) => {
|
||||||
|
console.error('error in main', err);
|
||||||
|
});
|
||||||
}, false);
|
}, false);
|
||||||
|
|
|
@ -42,4 +42,3 @@
|
||||||
"test/**/*"
|
"test/**/*"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue