feat: add instruction generation frontend interact
This commit is contained in:
parent
1d35cb46c2
commit
2df5d55c1c
@ -2,7 +2,7 @@ import { useRef, useState, useCallback } from "react";
|
||||
import ImageUpload from "./components/ImageUpload";
|
||||
import CodePreview from "./components/CodePreview";
|
||||
import Preview from "./components/Preview";
|
||||
import { CodeGenerationParams, generateCode } from "./generateCode";
|
||||
import { CodeGenerationParams, InstructionGenerationParams, generateCode, generateInstruction } from "./generateCode";
|
||||
import Spinner from "./components/Spinner";
|
||||
import classNames from "classnames";
|
||||
import {
|
||||
@ -114,6 +114,22 @@ function App() {
|
||||
);
|
||||
}
|
||||
|
||||
function doGenerateInstruction(params: InstructionGenerationParams) {
|
||||
setAppState(AppState.INSTRUCTION_GENERATING);
|
||||
|
||||
// Merge settings with params
|
||||
const updatedParams = { ...params, ...settings };
|
||||
|
||||
generateInstruction(
|
||||
wsRef,
|
||||
updatedParams,
|
||||
(token) => setUpdateInstruction((prev) => prev + token),
|
||||
(code) => setUpdateInstruction(code),
|
||||
(line) => setExecutionConsole((prev) => [...prev, line]),
|
||||
() => setAppState(AppState.CODE_READY)
|
||||
);
|
||||
}
|
||||
|
||||
// Initial version creation
|
||||
function doCreate(referenceImages: string[]) {
|
||||
setReferenceImages(referenceImages);
|
||||
@ -161,6 +177,15 @@ function App() {
|
||||
}));
|
||||
};
|
||||
|
||||
const instructionGenerate = async () => {
|
||||
const resultImage = await takeScreenshot();
|
||||
const originalImage = referenceImages[0];
|
||||
doGenerateInstruction({
|
||||
image: originalImage,
|
||||
resultImage: resultImage,
|
||||
});
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="mt-2">
|
||||
{IS_RUNNING_ON_CLOUD && <PicoBadge />}
|
||||
@ -221,6 +246,12 @@ function App() {
|
||||
onCheckedChange={setShouldIncludeResultImage}
|
||||
/>
|
||||
</div>
|
||||
<Button
|
||||
onClick={instructionGenerate}
|
||||
className="flex items-center gap-x-2"
|
||||
>
|
||||
Generate Instruction
|
||||
</Button>
|
||||
<Button onClick={doUpdate}>Update</Button>
|
||||
</div>
|
||||
<div className="flex items-center gap-x-2 mt-2">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user