@@ -30,7 +30,8 @@ const GenerateFlowTestModal = ({ closeFn = () => null, open = false, collectionI
3030
3131 const [ selectedModel , setSelectedModel ] = useState ( null ) ;
3232 const [ textareaValue , setTextareaValue ] = useState ( '' ) ;
33- const [ modelKey , setModelKey ] = useState ( '' ) ;
33+ const [ openaiKey , setOpenAIKey ] = useState ( '' ) ;
34+ const [ geminiKey , setGeminiKey ] = useState ( '' ) ;
3435 const [ bedrockAccessKeyId , setBedrockAccessKeyId ] = useState ( '' ) ;
3536 const [ bedrockSecretAccessKey , setBedrockSecretAccessKey ] = useState ( '' ) ;
3637
@@ -42,15 +43,16 @@ const GenerateFlowTestModal = ({ closeFn = () => null, open = false, collectionI
4243 const [ showFlowtestNameError , setShowFlowtestNameError ] = useState ( false ) ;
4344 const [ showCollectionSelectionError , setShowCollectionSelectionError ] = useState ( false ) ;
4445 const [ showSelectedModelError , setSelectedModelError ] = useState ( false ) ;
45- const [ showModelKeyError , setShowModelKeyError ] = useState ( false ) ;
46+ const [ showOpenAIKeyError , setShowOpenAIKeyError ] = useState ( false ) ;
47+ const [ showGeminiKeyError , setShowGeminiKeyError ] = useState ( false ) ;
4648 const [ showDescribeFlowError , setShowDescribeFlowError ] = useState ( false ) ;
4749 const [ showBedrockAccessKeyIdError , setShowBedrockAccessKeyIdError ] = useState ( false ) ;
4850 const [ showBedrockSecretAccessKeyError , setShowBedrockSecretAccessKeyError ] = useState ( false ) ;
4951 //const [showFolderSelectionError, setShowFolderSelectionError] = useState(false);
5052
5153 useEffect ( ( ) => {
5254 setSelectionCollection ( collectionId ? collections . find ( ( c ) => c . id === collectionId ) : { } ) ;
53- } , [ collectionId ] ) ;
55+ } , [ collectionId , collections ] ) ;
5456
5557 const resetFields = ( ) => {
5658 if ( ! collectionId ) {
@@ -60,10 +62,12 @@ const GenerateFlowTestModal = ({ closeFn = () => null, open = false, collectionI
6062 }
6163 setSelectedModel ( null ) ;
6264 setTextareaValue ( '' ) ;
63- setModelKey ( '' ) ;
65+ setOpenAIKey ( '' ) ;
66+ setGeminiKey ( '' ) ;
6467 setShowFlowtestNameError ( false ) ;
6568 setShowCollectionSelectionError ( false ) ;
66- setShowModelKeyError ( false ) ;
69+ setShowOpenAIKeyError ( false ) ;
70+ setShowGeminiKeyError ( false ) ;
6771 setShowDescribeFlowError ( false ) ;
6872 setSelectedModelError ( false ) ;
6973 setShowBedrockAccessKeyIdError ( false ) ;
@@ -289,7 +293,18 @@ const GenerateFlowTestModal = ({ closeFn = () => null, open = false, collectionI
289293 'OPENAI_APIKEY' ,
290294 )
291295 ) {
292- setModelKey ( selectedCollection . dotEnvVariables [ 'OPENAI_APIKEY' ] ) ;
296+ setOpenAIKey ( selectedCollection . dotEnvVariables [ 'OPENAI_APIKEY' ] ) ;
297+ }
298+ }
299+
300+ if ( GENAI_MODELS . gemini ) {
301+ if (
302+ Object . prototype . hasOwnProperty . call (
303+ selectedCollection . dotEnvVariables ,
304+ 'GEMINI_APIKEY' ,
305+ )
306+ ) {
307+ setGeminiKey ( selectedCollection . dotEnvVariables [ 'GEMINI_APIKEY' ] ) ;
293308 }
294309 }
295310
@@ -366,6 +381,35 @@ const GenerateFlowTestModal = ({ closeFn = () => null, open = false, collectionI
366381 ) }
367382 </ div >
368383 ) }
384+ { selectedModel === GENAI_MODELS . gemini ? (
385+ < div >
386+ < div className = 'mt-6 flex h-12 w-full items-center justify-center rounded border border-cyan-900 bg-background-light text-sm text-cyan-900 hover:bg-background' >
387+ < label
388+ className = 'flex h-full w-32 items-center border-r border-cyan-900 bg-transparent px-4'
389+ htmlFor = 'openAIkey'
390+ >
391+ API_KEY
392+ </ label >
393+ < input
394+ id = 'geminikey'
395+ type = 'text'
396+ className = 'nodrag nowheel block w-full bg-transparent p-2.5 outline-none'
397+ name = 'keyName'
398+ placeholder = 'Enter your GEMINI api key'
399+ value = { geminiKey . trim ( ) }
400+ //readOnly='readonly'
401+ onChange = { ( e ) => setGeminiKey ( e . target . value ) }
402+ />
403+ </ div >
404+ { geminiKey . trim ( ) === '' && showGeminiKeyError ? (
405+ < div className = 'py-2 text-red-600' > { `Please enter ${ selectedModel } api key` } </ div >
406+ ) : (
407+ ''
408+ ) }
409+ </ div >
410+ ) : (
411+ ''
412+ ) }
369413 { selectedModel === GENAI_MODELS . openai ? (
370414 < div >
371415 < div className = 'mt-6 flex h-12 w-full items-center justify-center rounded border border-cyan-900 bg-background-light text-sm text-cyan-900 hover:bg-background' >
@@ -381,12 +425,12 @@ const GenerateFlowTestModal = ({ closeFn = () => null, open = false, collectionI
381425 className = 'nodrag nowheel block w-full bg-transparent p-2.5 outline-none'
382426 name = 'keyName'
383427 placeholder = 'Enter your OPENAI api key'
384- value = { modelKey . trim ( ) }
428+ value = { openaiKey . trim ( ) }
385429 //readOnly='readonly'
386- onChange = { ( e ) => setModelKey ( e . target . value ) }
430+ onChange = { ( e ) => setOpenAIKey ( e . target . value ) }
387431 />
388432 </ div >
389- { modelKey . trim ( ) === '' && showModelKeyError ? (
433+ { openaiKey . trim ( ) === '' && showOpenAIKeyError ? (
390434 < div className = 'py-2 text-red-600' > { `Please enter ${ selectedModel } api key` } </ div >
391435 ) : (
392436 ''
@@ -506,8 +550,13 @@ const GenerateFlowTestModal = ({ closeFn = () => null, open = false, collectionI
506550 return ;
507551 }
508552
509- if ( selectedModel === GENAI_MODELS . openai && ( ! modelKey || modelKey . trim ( ) === '' ) ) {
510- setShowModelKeyError ( true ) ;
553+ if ( selectedModel === GENAI_MODELS . openai && ( ! openaiKey || openaiKey . trim ( ) === '' ) ) {
554+ setShowOpenAIKeyError ( true ) ;
555+ return ;
556+ }
557+
558+ if ( selectedModel === GENAI_MODELS . gemini && ( ! geminiKey || geminiKey . trim ( ) === '' ) ) {
559+ setShowGeminiKeyError ( true ) ;
511560 return ;
512561 }
513562
@@ -534,16 +583,19 @@ const GenerateFlowTestModal = ({ closeFn = () => null, open = false, collectionI
534583
535584 setShowFlowtestNameError ( false ) ;
536585 setShowCollectionSelectionError ( false ) ;
537- setShowModelKeyError ( false ) ;
586+ setShowOpenAIKeyError ( false ) ;
587+ setShowGeminiKeyError ( false ) ;
538588 setShowBedrockAccessKeyIdError ( false ) ;
539589 setShowBedrockSecretAccessKeyError ( false ) ;
540590 setShowDescribeFlowError ( false ) ;
541591 setSelectedModelError ( false ) ;
542592
543593 const creds =
544594 selectedModel === GENAI_MODELS . openai
545- ? modelKey
546- : { accessKeyId : bedrockAccessKeyId , secretAccessKey : bedrockSecretAccessKey } ;
595+ ? openaiKey
596+ : selectedModel === GENAI_MODELS . gemini
597+ ? geminiKey
598+ : { accessKeyId : bedrockAccessKeyId , secretAccessKey : bedrockSecretAccessKey } ;
547599 function gen ( ) {
548600 setShowLoader ( true ) ;
549601 promiseWithTimeout (
0 commit comments