mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-24 12:19:20 +00:00
SCM - 💄 fix property init order in scmHistoryViewPane.ts (#243069)
This commit is contained in:
@@ -206,7 +206,6 @@ const ignored = new Set([
|
||||
'vs/platform/quickinput/browser/commandsQuickAccess.ts',
|
||||
'vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.ts',
|
||||
'vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.ts',
|
||||
'vs/workbench/contrib/scm/browser/scmHistoryViewPane.ts',
|
||||
'vs/workbench/contrib/debug/browser/debugMemory.ts',
|
||||
'vs/workbench/contrib/markers/browser/markersViewActions.ts',
|
||||
'vs/workbench/contrib/mergeEditor/browser/view/viewZones.ts',
|
||||
|
||||
@@ -175,7 +175,6 @@ const ignored = new Set([
|
||||
'vs/platform/quickinput/browser/commandsQuickAccess.ts',
|
||||
'vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.ts',
|
||||
'vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.ts',
|
||||
'vs/workbench/contrib/scm/browser/scmHistoryViewPane.ts',
|
||||
'vs/workbench/contrib/debug/browser/debugMemory.ts',
|
||||
'vs/workbench/contrib/markers/browser/markersViewActions.ts',
|
||||
'vs/workbench/contrib/mergeEditor/browser/view/viewZones.ts',
|
||||
|
||||
@@ -318,7 +318,7 @@ class HistoryItemRenderer implements ITreeRenderer<SCMHistoryItemViewModelTreeEl
|
||||
static readonly TEMPLATE_ID = 'history-item';
|
||||
get templateId(): string { return HistoryItemRenderer.TEMPLATE_ID; }
|
||||
|
||||
private readonly _badgesConfig = observableConfigValue<'all' | 'filter'>('scm.graph.badges', 'filter', this._configurationService);
|
||||
private readonly _badgesConfig: IObservable<'all' | 'filter'>;
|
||||
|
||||
constructor(
|
||||
private readonly hoverDelegate: IHoverDelegate,
|
||||
@@ -328,7 +328,9 @@ class HistoryItemRenderer implements ITreeRenderer<SCMHistoryItemViewModelTreeEl
|
||||
@IHoverService private readonly _hoverService: IHoverService,
|
||||
@IMenuService private readonly _menuService: IMenuService,
|
||||
@IThemeService private readonly _themeService: IThemeService
|
||||
) { }
|
||||
) {
|
||||
this._badgesConfig = observableConfigValue<'all' | 'filter'>('scm.graph.badges', 'filter', this._configurationService);
|
||||
}
|
||||
|
||||
renderTemplate(container: HTMLElement): HistoryItemTemplate {
|
||||
// hack
|
||||
@@ -749,36 +751,13 @@ type RepositoryState = {
|
||||
};
|
||||
|
||||
class SCMHistoryViewModel extends Disposable {
|
||||
|
||||
private readonly _closedRepository = observableFromEvent(
|
||||
this,
|
||||
this._scmService.onDidRemoveRepository,
|
||||
repository => repository);
|
||||
|
||||
private readonly _firstRepository = this._scmService.repositoryCount > 0 ?
|
||||
constObservable(Iterable.first(this._scmService.repositories)) :
|
||||
observableFromEvent(
|
||||
this,
|
||||
Event.once(this._scmService.onDidAddRepository),
|
||||
repository => repository
|
||||
);
|
||||
|
||||
private readonly _selectedRepository = observableValue<'auto' | ISCMRepository>(this, 'auto');
|
||||
|
||||
private readonly _graphRepository = derived(reader => {
|
||||
const selectedRepository = this._selectedRepository.read(reader);
|
||||
if (selectedRepository !== 'auto') {
|
||||
return selectedRepository;
|
||||
}
|
||||
|
||||
return this._scmViewService.activeRepository.read(reader);
|
||||
});
|
||||
|
||||
/**
|
||||
* The active | selected repository takes precedence over the first repository when the observable
|
||||
* values are updated in the same transaction (or during the initial read of the observable value).
|
||||
*/
|
||||
readonly repository = latestChangedValue(this, [this._firstRepository, this._graphRepository]);
|
||||
readonly repository: IObservable<ISCMRepository | undefined>;
|
||||
private readonly _selectedRepository = observableValue<'auto' | ISCMRepository>(this, 'auto');
|
||||
|
||||
readonly onDidChangeHistoryItemsFilter = observableSignal(this);
|
||||
readonly isViewModelEmpty = observableValue(this, false);
|
||||
|
||||
@@ -804,9 +783,30 @@ class SCMHistoryViewModel extends Disposable {
|
||||
|
||||
this._scmHistoryItemCountCtx = ContextKeys.SCMHistoryItemCount.bindTo(this._contextKeyService);
|
||||
|
||||
const firstRepository = this._scmService.repositoryCount > 0
|
||||
? constObservable(Iterable.first(this._scmService.repositories))
|
||||
: observableFromEvent(this,
|
||||
Event.once(this._scmService.onDidAddRepository),
|
||||
repository => repository);
|
||||
|
||||
const graphRepository = derived(reader => {
|
||||
const selectedRepository = this._selectedRepository.read(reader);
|
||||
if (selectedRepository !== 'auto') {
|
||||
return selectedRepository;
|
||||
}
|
||||
|
||||
return this._scmViewService.activeRepository.read(reader);
|
||||
});
|
||||
|
||||
this.repository = latestChangedValue(this, [firstRepository, graphRepository]);
|
||||
|
||||
const closedRepository = observableFromEvent(this,
|
||||
this._scmService.onDidRemoveRepository,
|
||||
repository => repository);
|
||||
|
||||
// Closed repository cleanup
|
||||
this._register(autorun(reader => {
|
||||
const repository = this._closedRepository.read(reader);
|
||||
const repository = closedRepository.read(reader);
|
||||
if (!repository) {
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user