From 0c0907ef7e5ff0d5dc91ddc150c9066513eb6900 Mon Sep 17 00:00:00 2001 From: Oleg Proskurin Date: Mon, 6 Oct 2025 00:14:30 +0700 Subject: [PATCH] feat: improve options panel --- apps/landing/src/app/demo/tti/page.tsx | 173 +++++++++--- .../components/demo/AdvancedOptionsModal.tsx | 216 ++++++++++++++ .../components/demo/EnhancementOptions.tsx | 264 ------------------ .../src/components/demo/ResultCard.tsx | 2 - apps/landing/src/components/demo/index.ts | 1 + 5 files changed, 345 insertions(+), 311 deletions(-) create mode 100644 apps/landing/src/components/demo/AdvancedOptionsModal.tsx delete mode 100644 apps/landing/src/components/demo/EnhancementOptions.tsx diff --git a/apps/landing/src/app/demo/tti/page.tsx b/apps/landing/src/app/demo/tti/page.tsx index 18d9c54..96d97ff 100644 --- a/apps/landing/src/app/demo/tti/page.tsx +++ b/apps/landing/src/app/demo/tti/page.tsx @@ -4,7 +4,7 @@ import { useState, useRef, KeyboardEvent } from 'react'; import { MinimizedApiKey } from '@/components/demo/MinimizedApiKey'; import { GenerationTimer } from '@/components/demo/GenerationTimer'; import { ResultCard } from '@/components/demo/ResultCard'; -import { EnhancementOptions, EnhancementOptionsData } from '@/components/demo/EnhancementOptions'; +import { AdvancedOptionsModal, AdvancedOptionsData } from '@/components/demo/AdvancedOptionsModal'; const API_BASE_URL = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3000'; @@ -36,7 +36,10 @@ interface GenerationResult { response: object; geminiParams: object; }; - enhancementOptions?: EnhancementOptionsData; + enhancementOptions?: { + imageStyle?: string; + aspectRatio?: string; + } & AdvancedOptionsData; } interface ApiKeyInfo { @@ -60,7 +63,10 @@ export default function DemoTTIPage() { const [generationError, setGenerationError] = useState(''); // Enhancement Options State - const [enhancementOptions, setEnhancementOptions] = useState({}); + const [aspectRatio, setAspectRatio] = useState(''); + const [imageStyle, setImageStyle] = useState(''); + const [advancedOptions, setAdvancedOptions] = useState({}); + const [showAdvancedModal, setShowAdvancedModal] = useState(false); // Results State const [results, setResults] = useState([]); @@ -142,26 +148,23 @@ export default function DemoTTIPage() { try { // Build enhancement options for right image (only non-empty values) const rightEnhancementOptions: any = {}; - if (enhancementOptions.autoEnhance) { - rightEnhancementOptions.autoEnhance = true; + if (imageStyle) { + rightEnhancementOptions.imageStyle = imageStyle; } - if (enhancementOptions.imageStyle) { - rightEnhancementOptions.imageStyle = enhancementOptions.imageStyle; + if (aspectRatio) { + rightEnhancementOptions.aspectRatio = aspectRatio; } - if (enhancementOptions.aspectRatio) { - rightEnhancementOptions.aspectRatio = enhancementOptions.aspectRatio; + if (advancedOptions.mood) { + rightEnhancementOptions.mood = advancedOptions.mood; } - if (enhancementOptions.mood) { - rightEnhancementOptions.mood = enhancementOptions.mood; + if (advancedOptions.lighting) { + rightEnhancementOptions.lighting = advancedOptions.lighting; } - if (enhancementOptions.lighting) { - rightEnhancementOptions.lighting = enhancementOptions.lighting; + if (advancedOptions.cameraAngle) { + rightEnhancementOptions.cameraAngle = advancedOptions.cameraAngle; } - if (enhancementOptions.cameraAngle) { - rightEnhancementOptions.cameraAngle = enhancementOptions.cameraAngle; - } - if (enhancementOptions.negativePrompts && enhancementOptions.negativePrompts.length > 0) { - rightEnhancementOptions.negativePrompts = enhancementOptions.negativePrompts; + if (advancedOptions.negativePrompts && advancedOptions.negativePrompts.length > 0) { + rightEnhancementOptions.negativePrompts = advancedOptions.negativePrompts; } const hasEnhancementOptions = Object.keys(rightEnhancementOptions).length > 0; @@ -247,7 +250,11 @@ export default function DemoTTIPage() { geminiParams: rightData.data?.geminiParams || {}, }, // Store enhancement options for display in inspect mode - enhancementOptions: hasEnhancementOptions ? enhancementOptions : undefined, + enhancementOptions: hasEnhancementOptions ? { + imageStyle, + aspectRatio, + ...advancedOptions, + } : undefined, }; if (!leftData.success) { @@ -387,34 +394,101 @@ export default function DemoTTIPage() { )} - {/* Prompt Input Section */} -
-

Your Prompt

-