11import React , { FunctionComponent , useEffect , useState } from "react"
2- import OutsideClickHandler from "react-outside-click-handler"
32import Constants from "../../constants"
43import eventService from "../../events/eventService"
54
@@ -27,7 +26,6 @@ const ModelOptions = [
2726const AdvancedSettings : FunctionComponent < { } > = ( ) => {
2827 const [ openAIKey , setOpenAIKey ] = useState < string > ( "" )
2928 const [ openAIModel , setOpenAIModel ] = useState < string > ( "" )
30- const [ isShowingNavDropDown , setIsShowingNavDropDown ] = useState < boolean > ( false )
3129
3230 useEffect ( ( ) => {
3331 ( async ( ) => {
@@ -53,6 +51,10 @@ const AdvancedSettings: FunctionComponent<{}> = () => {
5351 setOpenAIModel ( openAIModel )
5452 }
5553
54+ const handleModelChange = ( e : React . ChangeEvent < HTMLInputElement | HTMLSelectElement > ) => {
55+ const value = e . target . value ;
56+ setOpenAIModel ( value ) ;
57+ }
5658 return (
5759 < React . Fragment >
5860 < h1 > Advanced Settings</ h1 >
@@ -76,35 +78,12 @@ const AdvancedSettings: FunctionComponent<{}> = () => {
7678 < p > Update OpenAI Model to enable Generate SQL tool.</ p >
7779 < div className = "buttons has-addons" >
7880 < div className = "field has-addons" >
79- < div className = { `dropdown${ isShowingNavDropDown ? " is-active" : "" } ` } >
80- < div className = { `dropdown-trigger` } >
81- < button className = { "button" } aria-haspopup = "true" aria-controls = "dropdown-menu" onClick = { ( ) => { setIsShowingNavDropDown ( ! isShowingNavDropDown ) } } >
82- < span > { openAIModel } </ span >
83- < span className = "icon" >
84- < i className = "fas fa-angle-down" aria-hidden = "true" > </ i >
85- </ span >
86- </ button >
87- </ div >
88- { isShowingNavDropDown && (
89- < OutsideClickHandler onOutsideClick = { ( ) => { setIsShowingNavDropDown ( ! isShowingNavDropDown ) } } >
90- < div className = "dropdown-menu" id = "dropdown-menu" role = "menu" >
91- < div className = "dropdown-content scrollable" >
92- { ModelOptions . map ( ( x ) => {
93- return (
94- < React . Fragment key = { x . value } >
95- < a onClick = { ( ) => { setOpenAIModel ( x . value ) , setIsShowingNavDropDown ( false ) } } className = { `dropdown-item${ x . value === openAIModel ? " is-active" : "" } ` } >
96- { x . value }
97- </ a >
98- { x . value === "home" && (
99- < hr className = "dropdown-divider" />
100- ) }
101- </ React . Fragment >
102- ) ;
103- } ) }
104- </ div >
105- </ div >
106- </ OutsideClickHandler >
107- ) }
81+ < div className = "select" >
82+ < select value = { openAIModel } onChange = { ( e ) => { handleModelChange ( e ) } } >
83+ { ModelOptions . map ( ( e , idx ) => {
84+ return < option value = { e . value } key = { idx } > { e . value } </ option >
85+ } ) }
86+ </ select >
10887 </ div >
10988 < p id = "model_update" className = "control" >
11089 < a className = "button" onClick = { ( ) => updateOpenAIModel ( ) } >
0 commit comments