11import React , { useEffect , useState } from "react" ;
22import * as monaco from "monaco-editor" ;
3+ import {
4+ Select ,
5+ SelectContent ,
6+ SelectGroup ,
7+ SelectItem ,
8+ SelectTrigger ,
9+ SelectValue ,
10+ } from "@/components/ui/select" ;
311
412interface EditorProps {
513 editorRef : React . MutableRefObject < monaco . editor . IStandaloneCodeEditor | null > ;
@@ -17,8 +25,8 @@ const Editor: React.FC<EditorProps> = ({ editorRef, runQuery }) => {
1725 }
1826 } , [ theme , editorRef ] ) ;
1927
20- const handleThemeChange = ( event : React . ChangeEvent < HTMLSelectElement > ) => {
21- setTheme ( event . target . value ) ;
28+ const handleThemeChange = ( value : string ) => {
29+ setTheme ( value ) ;
2230 } ;
2331
2432 useEffect ( ( ) => {
@@ -77,16 +85,19 @@ const Editor: React.FC<EditorProps> = ({ editorRef, runQuery }) => {
7785 < button onClick = { decreaseFontSize } style = { { marginLeft : "4px" } } >
7886 ▼
7987 </ button >
80- < select
81- onChange = { handleThemeChange }
82- value = { theme }
83- style = { { marginLeft : "8px" } }
84- >
85- < option value = "vs" > vs</ option >
86- < option value = "vs-dark" > vs-dark</ option >
87- < option value = "hc-black" > hc-black</ option >
88- < option value = "hc-light" > hc-light</ option >
89- </ select >
88+ < Select onValueChange = { handleThemeChange } value = { theme } >
89+ < SelectTrigger className = "w-[180px] ml-2" >
90+ < SelectValue placeholder = "Select theme" />
91+ </ SelectTrigger >
92+ < SelectContent >
93+ < SelectGroup >
94+ < SelectItem value = "vs" > VS Light</ SelectItem >
95+ < SelectItem value = "vs-dark" > VS Dark</ SelectItem >
96+ < SelectItem value = "hc-black" > High Contrast Dark</ SelectItem >
97+ < SelectItem value = "hc-light" > High Contrast Light</ SelectItem >
98+ </ SelectGroup >
99+ </ SelectContent >
100+ </ Select >
90101 </ div >
91102 < div
92103 id = "editor"
0 commit comments