@@ -10,6 +10,7 @@ import type { WebviewMessage } from '../utils/message-bus';
1010export class MainPanel {
1111 public static currentPanel : MainPanel | undefined ;
1212 private static readonly viewType = 'gitGraphPlus' ;
13+ private static savedRemoteFilter : string [ ] | undefined = undefined ;
1314
1415 private readonly panel : vscode . WebviewPanel ;
1516 private readonly extensionUri : vscode . Uri ;
@@ -20,6 +21,7 @@ export class MainPanel {
2021 private allConflictFiles : string [ ] = [ ] ;
2122 private currentLimit = 1000 ;
2223 private currentRemoteFilter : string [ ] | undefined = undefined ;
24+ private isFirstGetLog = true ;
2325 public static onSidebarRefresh : ( ( ) => void ) | null = null ;
2426
2527 private constructor (
@@ -147,8 +149,13 @@ export class MainPanel {
147149 const sortOrder = cfg . get < 'author-date' | 'date' | 'topological' > ( 'graphSortOrder' , 'topological' ) ;
148150 const requestedLimit = message . payload . limit ?? 1000 ;
149151 this . currentLimit = requestedLimit ;
150- this . currentRemoteFilter = message . payload . remoteFilter ;
151- const logPayload = { ...message . payload , limit : requestedLimit + 1 , sortOrder } ;
152+ // On first load, apply saved filter if the webview didn't specify one.
153+ const effectiveFilter = this . isFirstGetLog && message . payload . remoteFilter === undefined
154+ ? MainPanel . savedRemoteFilter
155+ : message . payload . remoteFilter ;
156+ this . isFirstGetLog = false ;
157+ this . currentRemoteFilter = effectiveFilter ;
158+ const logPayload = { ...message . payload , remoteFilter : effectiveFilter , limit : requestedLimit + 1 , sortOrder } ;
152159 const [ allFetched , logBranches ] = await Promise . all ( [
153160 this . gitService . log ( logPayload ) ,
154161 this . gitService . branches ( ) ,
@@ -168,6 +175,7 @@ export class MainPanel {
168175 links : fullGraph . links ,
169176 dots : fullGraph . dots ,
170177 commitLeftMargin : fullGraph . commitLeftMargin ,
178+ remoteFilter : effectiveFilter ,
171179 } ,
172180 } ) ;
173181 break ;
@@ -1158,6 +1166,7 @@ export class MainPanel {
11581166 }
11591167
11601168 private dispose ( ) : void {
1169+ MainPanel . savedRemoteFilter = this . currentRemoteFilter ;
11611170 MainPanel . currentPanel = undefined ;
11621171 this . panel . dispose ( ) ;
11631172 while ( this . disposables . length ) {
0 commit comments