File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -138,9 +138,22 @@ function SearchPage() {
138138 setRecentTasksExpanded,
139139 selectTask,
140140 } = useTask ( ) ;
141- const { parsedFilterData, queryOverride, selectedFilter } =
142- useKnowledgeFilter ( ) ;
141+ const {
142+ parsedFilterData,
143+ queryOverride,
144+ selectedFilter,
145+ setSelectedSources,
146+ } = useKnowledgeFilter ( ) ;
143147 const [ selectedRows , setSelectedRows ] = useState < File [ ] > ( [ ] ) ;
148+
149+ // Keep the filter context aware of checked rows so "Create New Filter"
150+ // can pre-populate its sources from the current selection.
151+ useEffect ( ( ) => {
152+ setSelectedSources (
153+ selectedRows . flatMap ( ( row ) => ( row . filename ? [ row . filename ] : [ ] ) ) ,
154+ ) ;
155+ return ( ) => setSelectedSources ( [ ] ) ;
156+ } , [ selectedRows , setSelectedSources ] ) ;
144157 const [ showBulkDeleteDialog , setShowBulkDeleteDialog ] = useState ( false ) ;
145158 const lastErrorRef = useRef < string | null > ( null ) ;
146159 const hasInitializedFailedFilesRef = useRef ( false ) ;
Original file line number Diff line number Diff line change @@ -49,6 +49,9 @@ interface KnowledgeFilterContextType {
4949 endCreateMode : ( ) => void ;
5050 queryOverride : string ;
5151 setQueryOverride : ( query : string ) => void ;
52+ /** Filenames checked in the knowledge table; seeds data_sources on create. */
53+ selectedSources : string [ ] ;
54+ setSelectedSources : ( sources : string [ ] ) => void ;
5255}
5356
5457const KnowledgeFilterContext = createContext <
@@ -82,6 +85,7 @@ export function KnowledgeFilterProvider({
8285 ) ;
8386 const [ createMode , setCreateMode ] = useState ( false ) ;
8487 const [ queryOverride , setQueryOverride ] = useState ( "" ) ;
88+ const [ selectedSources , setSelectedSources ] = useState < string [ ] > ( [ ] ) ;
8589
8690 const setSelectedFilter = ( filter : KnowledgeFilter | null ) => {
8791 setSelectedFilterState ( filter ) ;
@@ -145,14 +149,14 @@ export function KnowledgeFilterProvider({
145149 } , [ ] ) ;
146150
147151 const startCreateMode = ( ) => {
148- // Initialize defaults
152+ // Initialize defaults; checked table rows pre-populate the sources filter
149153 setPanelMode ( "filters" ) ;
150154 setCreateMode ( true ) ;
151155 setSelectedFilterState ( null ) ;
152156 setParsedFilterData ( {
153157 query : "" ,
154158 filters : {
155- data_sources : [ "*" ] ,
159+ data_sources : selectedSources . length > 0 ? [ ... selectedSources ] : [ "*" ] ,
156160 document_types : [ "*" ] ,
157161 owners : [ "*" ] ,
158162 connector_types : [ "*" ] ,
@@ -192,6 +196,8 @@ export function KnowledgeFilterProvider({
192196 endCreateMode,
193197 queryOverride,
194198 setQueryOverride,
199+ selectedSources,
200+ setSelectedSources,
195201 } ;
196202
197203 return (
You can’t perform that action at this time.
0 commit comments