@@ -92,7 +92,7 @@ import {
92
92
useSources ,
93
93
} from '@/source' ;
94
94
import { parseTimeQuery , useNewTimeQuery } from '@/timeQuery' ;
95
- import { QUERY_LOCAL_STORAGE , usePrevious } from '@/utils' ;
95
+ import { QUERY_LOCAL_STORAGE , useLocalStorage , usePrevious } from '@/utils' ;
96
96
97
97
import { SQLPreview } from './components/ChartSQLPreview' ;
98
98
import PatternTable from './components/PatternTable' ;
@@ -472,6 +472,10 @@ function DBSearchPage() {
472
472
) ;
473
473
474
474
const { data : sources } = useSources ( ) ;
475
+ const [ lastSelectedSourceId , setLastSelectedSourceId ] = useLocalStorage (
476
+ 'hdx-last-selected-source-id' ,
477
+ '' ,
478
+ ) ;
475
479
const { data : searchedSource } = useSource ( {
476
480
id : searchedConfig . source ,
477
481
} ) ;
@@ -514,7 +518,13 @@ function DBSearchPage() {
514
518
select : searchedConfig . select || '' ,
515
519
where : searchedConfig . where || '' ,
516
520
whereLanguage : searchedConfig . whereLanguage ?? 'lucene' ,
517
- source : searchedConfig . source ?? sources ?. [ 0 ] ?. id ?? '' ,
521
+ source :
522
+ searchedConfig . source ??
523
+ ( lastSelectedSourceId &&
524
+ sources ?. some ( s => s . id === lastSelectedSourceId )
525
+ ? lastSelectedSourceId
526
+ : sources ?. [ 0 ] ?. id ) ??
527
+ '' ,
518
528
filters : searchedConfig . filters ?? [ ] ,
519
529
orderBy : searchedConfig . orderBy ?? '' ,
520
530
} ,
@@ -623,6 +633,8 @@ function DBSearchPage() {
623
633
setSearchedConfig ,
624
634
savedSearchId ,
625
635
inputSource ,
636
+ lastSelectedSourceId ,
637
+ sources ,
626
638
] ) ;
627
639
628
640
const [ _queryErrors , setQueryErrors ] = useState < {
@@ -676,6 +688,9 @@ function DBSearchPage() {
676
688
s => s . id === data . source ,
677
689
) ;
678
690
if ( newInputSourceObj != null ) {
691
+ // Save the selected source ID to localStorage
692
+ setLastSelectedSourceId ( newInputSourceObj . id ) ;
693
+
679
694
setValue (
680
695
'select' ,
681
696
newInputSourceObj ?. defaultTableSelectExpression ?? '' ,
@@ -692,7 +707,14 @@ function DBSearchPage() {
692
707
}
693
708
} ) ;
694
709
return ( ) => unsubscribe ( ) ;
695
- } , [ watch , inputSourceObj , setValue , inputSourceObjs , searchFilters ] ) ;
710
+ } , [
711
+ watch ,
712
+ inputSourceObj ,
713
+ setValue ,
714
+ inputSourceObjs ,
715
+ searchFilters ,
716
+ setLastSelectedSourceId ,
717
+ ] ) ;
696
718
697
719
const onTableScroll = useCallback (
698
720
( scrollTop : number ) => {
0 commit comments