@@ -17,6 +17,8 @@ export const QueryEditor = ({ query, onChange, onRunQuery, datasource, app, data
1717 const [ orgOptions , setOrgOptions ] : any = useState ( [ ] ) ;
1818 const [ isMounted , setIsMounted ] : any = useState ( false ) ;
1919 const [ isLoading , setIsLoading ] : any = useState ( [ ] ) ;
20+ const [ displayOptions , setDisplayOptions ] : any = useState ( [ ] ) ;
21+
2022
2123 const isInDashboard = useMemo ( ( ) => app === 'panel-editor' , [ app ] ) ;
2224
@@ -32,6 +34,14 @@ export const QueryEditor = ({ query, onChange, onRunQuery, datasource, app, data
3234 setIsLoading ( isLoading . slice ( 1 ) ) ;
3335 } ;
3436
37+ useEffect ( ( ) => {
38+ setDisplayOptions ( [
39+ { label : 'Auto' , value : 'auto' } ,
40+ { label : 'Force Graph' , value : 'graph' } ,
41+ { label : 'Force Logs' , value : 'logs' } ,
42+ ] ) ;
43+ } , [ ] ) ;
44+
3545 useEffect ( ( ) => {
3646 startLoading ( ) ;
3747 getOrganizations ( { url : datasource . url , page_num : 0 , page_size : 1000 , sort_by : 'id' } )
@@ -66,6 +76,7 @@ export const QueryEditor = ({ query, onChange, onRunQuery, datasource, app, data
6676 stream : streams [ 0 ] . name ,
6777 organization : orgs . data [ 0 ] . name ,
6878 sqlMode : isInDashboard ? true : false ,
79+ displayMode : query . displayMode ?? 'auto'
6980 } ) ;
7081 } else if ( isInDashboard && query . organization && query . stream && query . query ) {
7182 updateQuery ( ) ;
@@ -137,6 +148,11 @@ export const QueryEditor = ({ query, onChange, onRunQuery, datasource, app, data
137148 } ) ;
138149 } ;
139150
151+ const onDisplayModeChange = ( displayMode : any ) => {
152+ const newMode = displayMode . value as MyQuery [ 'displayMode' ] ;
153+ onChange ( { ...query , displayMode : newMode } ) ;
154+ } ;
155+
140156 const onChangeQuery = ( { value, sqlMode } : { value : string ; sqlMode : boolean } ) => {
141157 onChange ( { ...query , query : value , sqlMode : sqlMode } ) ;
142158 } ;
@@ -266,6 +282,18 @@ export const QueryEditor = ({ query, onChange, onRunQuery, datasource, app, data
266282 < Switch data-testid = "query-editor-sql-mode-switch" value = { ! ! query . sqlMode } onChange = { toggleSqlMode } />
267283 </ div >
268284 ) }
285+ { /* Display Mode selector */ }
286+ < div className = { css `display : flex; align-items : center; padding-bottom : 0.5rem ;` } >
287+ < InlineLabel className = { css `width : fit-content;` } transparent >
288+ Display Mode
289+ </ InlineLabel >
290+ < Select
291+ options = { displayOptions }
292+ value = { displayOptions . find ( ( o : any ) => o . value === query . displayMode ) || displayOptions [ 0 ] }
293+ onChange = { onDisplayModeChange }
294+ width = { 20 }
295+ />
296+ </ div >
269297 { query . stream && (
270298 < ZincEditor
271299 key = { generateEditorId }
0 commit comments