diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index a5e3581..802e960 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -126,7 +126,10 @@ function App() { setAppState(AppState.CODE_READY); }; - function doGenerateCode(params: CodeGenerationParams) { + function doGenerateCode( + params: CodeGenerationParams, + parentVersion?: number + ) { setExecutionConsole([]); setAppState(AppState.CODING); @@ -143,6 +146,7 @@ function App() { setAppHistory([ { type: "ai_create", + parent: null, code, inputs: { image_url: referenceImages[0] }, }, @@ -150,10 +154,20 @@ function App() { setCurrentVersion(0); } else { setAppHistory((prev) => { + // Validate parent version + if (!parentVersion) { + toast.error( + "No parent version set. Contact support or open a Github issue." + ); + return prev; + } + const newHistory: History = [ ...prev, { type: "ai_edit", + // TODO: It should never be null + parent: parentVersion, code, inputs: { prompt: updateInstruction, @@ -202,18 +216,24 @@ function App() { if (shouldIncludeResultImage) { const resultImage = await takeScreenshot(); - doGenerateCode({ - generationType: "update", - image: referenceImages[0], - resultImage: resultImage, - history: updatedHistory, - }); + doGenerateCode( + { + generationType: "update", + image: referenceImages[0], + resultImage: resultImage, + history: updatedHistory, + }, + currentVersion + ); } else { - doGenerateCode({ - generationType: "update", - image: referenceImages[0], - history: updatedHistory, - }); + doGenerateCode( + { + generationType: "update", + image: referenceImages[0], + history: updatedHistory, + }, + currentVersion + ); } setGeneratedCode(""); diff --git a/frontend/src/components/history/HistoryDisplay.tsx b/frontend/src/components/history/HistoryDisplay.tsx index 43b4614..f28a300 100644 --- a/frontend/src/components/history/HistoryDisplay.tsx +++ b/frontend/src/components/history/HistoryDisplay.tsx @@ -52,7 +52,12 @@ export default function HistoryDisplay({ : revertToVersion(index) } > -