From 73928ab7a13ed1c2972bfb55fccce5ab0e71f265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=8E=E5=A3=B0?= Date: Thu, 11 Apr 2024 15:53:10 +0800 Subject: [PATCH] fix: diff editor missing dirty state indicator (#3521) Co-authored-by: John --- packages/editor/src/browser/diff/index.ts | 10 ++++++++-- packages/editor/src/browser/resource.service.ts | 5 +++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/editor/src/browser/diff/index.ts b/packages/editor/src/browser/diff/index.ts index 7c3b81b053..81c7e78166 100644 --- a/packages/editor/src/browser/diff/index.ts +++ b/packages/editor/src/browser/diff/index.ts @@ -3,7 +3,13 @@ import { Domain, OnEvent, URI, WithEventBus } from '@opensumi/ide-core-browser'; import { LabelService } from '@opensumi/ide-core-browser/lib/services'; import { IFileServiceClient } from '@opensumi/ide-file-service'; -import { IDiffResource, IResourceProvider, ResourceDecorationChangeEvent, ResourceService } from '../../common'; +import { + IDiffResource, + IResourceProvider, + ResourceDecorationChangeEvent, + ResourceDecorationNeedChangeEvent, + ResourceService, +} from '../../common'; import { BrowserEditorContribution, EditorComponentRegistry, EditorOpenType } from '../types'; // diff URI: @@ -32,7 +38,7 @@ export class DiffResourceProvider extends WithEventBus implements IResourceProvi onResourceDecorationChangeEvent(e: ResourceDecorationChangeEvent) { if (e.payload.uri && this.modifiedToResource.has(e.payload.uri.toString())) { this.eventBus.fire( - new ResourceDecorationChangeEvent({ + new ResourceDecorationNeedChangeEvent({ uri: this.modifiedToResource.get(e.payload.uri.toString())!, decoration: e.payload.decoration, }), diff --git a/packages/editor/src/browser/resource.service.ts b/packages/editor/src/browser/resource.service.ts index eb8c924ede..6500ea08ad 100644 --- a/packages/editor/src/browser/resource.service.ts +++ b/packages/editor/src/browser/resource.service.ts @@ -71,8 +71,9 @@ export class ResourceServiceImpl extends WithEventBus implements ResourceService } @OnEvent(ResourceDecorationNeedChangeEvent) - onResourceDecorationChangeEvent(e: ResourceDecorationNeedChangeEvent) { - this.getResourceDecoration(e.payload.uri); // ensure object + onResourceDecorationNeedChangeEvent(e: ResourceDecorationNeedChangeEvent) { + // ensure object + void this.getResourceDecoration(e.payload.uri); let changed = false; const previous = this.resourceDecoration.get(e.payload.uri.toString()) || {}; new Set([...Object.keys(previous), ...Object.keys(e.payload.decoration)]).forEach((key) => {