Skip to content

Commit d70459b

Browse files
committed
Observables: More owners
1 parent a7f384b commit d70459b

File tree

3 files changed

+5
-5
lines changed

3 files changed

+5
-5
lines changed

src/vs/base/common/observableInternal/derived.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ export const defaultEqualityComparer: EqualityComparer<any> = (a, b) => a === b;
1919
* {@link computeFn} should start with a JS Doc using `@description` to name the derived.
2020
*/
2121
export function derived<T>(computeFn: (reader: IReader) => T): IObservable<T>;
22-
export function derived<T>(owner: object, computeFn: (reader: IReader) => T): IObservable<T>;
23-
export function derived<T>(computeFnOrOwner: ((reader: IReader) => T) | object, computeFn?: ((reader: IReader) => T) | undefined): IObservable<T> {
22+
export function derived<T>(owner: Owner, computeFn: (reader: IReader) => T): IObservable<T>;
23+
export function derived<T>(computeFnOrOwner: ((reader: IReader) => T) | Owner, computeFn?: ((reader: IReader) => T) | undefined): IObservable<T> {
2424
if (computeFn !== undefined) {
2525
return new Derived(
2626
new DebugNameData(computeFnOrOwner, undefined, computeFn),

src/vs/base/common/observableInternal/utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,9 +404,9 @@ export class KeepAliveObserver implements IObserver {
404404
}
405405
}
406406

407-
export function derivedObservableWithCache<T>(computeFn: (reader: IReader, lastValue: T | undefined) => T): IObservable<T> {
407+
export function derivedObservableWithCache<T>(owner: Owner, computeFn: (reader: IReader, lastValue: T | undefined) => T): IObservable<T> {
408408
let lastValue: T | undefined = undefined;
409-
const observable = derived(reader => {
409+
const observable = derived(owner, reader => {
410410
lastValue = computeFn(reader, lastValue);
411411
return lastValue;
412412
});

src/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ export class MultiDiffEditorWidgetImpl extends Disposable {
9595

9696
private readonly _totalHeight = this._viewItems.map(this, (items, reader) => items.reduce((r, i) => r + i.contentHeight.read(reader) + this._spaceBetweenPx, 0));
9797
public readonly activeDiffItem = derived(this, reader => this._viewItems.read(reader).find(i => i.template.read(reader)?.isFocused.read(reader)));
98-
public readonly lastActiveDiffItem = derivedObservableWithCache<VirtualizedViewItem | undefined>((reader, lastValue) => this.activeDiffItem.read(reader) ?? lastValue);
98+
public readonly lastActiveDiffItem = derivedObservableWithCache<VirtualizedViewItem | undefined>(this, (reader, lastValue) => this.activeDiffItem.read(reader) ?? lastValue);
9999
public readonly activeControl = derived(this, reader => this.lastActiveDiffItem.read(reader)?.template.read(reader)?.editor);
100100

101101
private readonly _contextKeyService = this._register(this._parentContextKeyService.createScoped(this._element));

0 commit comments

Comments
 (0)