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 ImageUpload from "./components/ImageUpload";
|
||||||
import CodePreview from "./components/CodePreview";
|
import CodePreview from "./components/CodePreview";
|
||||||
import Preview from "./components/Preview";
|
import Preview from "./components/Preview";
|
||||||
import { CodeGenerationParams, generateCode } from "./generateCode";
|
import { CodeGenerationParams, InstructionGenerationParams, generateCode, generateInstruction } from "./generateCode";
|
||||||
import Spinner from "./components/Spinner";
|
import Spinner from "./components/Spinner";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import {
|
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
|
// Initial version creation
|
||||||
function doCreate(referenceImages: string[]) {
|
function doCreate(referenceImages: string[]) {
|
||||||
setReferenceImages(referenceImages);
|
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 (
|
return (
|
||||||
<div className="mt-2">
|
<div className="mt-2">
|
||||||
{IS_RUNNING_ON_CLOUD && <PicoBadge />}
|
{IS_RUNNING_ON_CLOUD && <PicoBadge />}
|
||||||
@ -221,6 +246,12 @@ function App() {
|
|||||||
onCheckedChange={setShouldIncludeResultImage}
|
onCheckedChange={setShouldIncludeResultImage}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<Button
|
||||||
|
onClick={instructionGenerate}
|
||||||
|
className="flex items-center gap-x-2"
|
||||||
|
>
|
||||||
|
Generate Instruction
|
||||||
|
</Button>
|
||||||
<Button onClick={doUpdate}>Update</Button>
|
<Button onClick={doUpdate}>Update</Button>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-x-2 mt-2">
|
<div className="flex items-center gap-x-2 mt-2">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user