From bd526355f280a1a70cc7bff8b3c3dabc0ce43965 Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Sat, 29 Jun 2019 09:55:28 +0200 Subject: [PATCH] Code editor improvements. --- .../app/framework/angular/forms/code-editor.component.ts | 6 ++++-- .../app/framework/angular/forms/json-editor.component.ts | 2 ++ src/Squidex/app/framework/angular/stateful.component.ts | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Squidex/app/framework/angular/forms/code-editor.component.ts b/src/Squidex/app/framework/angular/forms/code-editor.component.ts index 93a422a63..e850409ea 100644 --- a/src/Squidex/app/framework/angular/forms/code-editor.component.ts +++ b/src/Squidex/app/framework/angular/forms/code-editor.component.ts @@ -29,7 +29,7 @@ export const SQX_CODE_EDITOR_CONTROL_VALUE_ACCESSOR: any = { providers: [SQX_CODE_EDITOR_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush }) -export class CodeEditorComponent extends StatefulControlComponent implements AfterViewInit { +export class CodeEditorComponent extends StatefulControlComponent implements AfterViewInit { private valueChanged = new Subject(); private aceEditor: any; private value: string; @@ -47,7 +47,7 @@ export class CodeEditorComponent extends StatefulControlComponent impl super(changeDetector, {}); } - public writeValue(obj: any) { + public writeValue(obj: string) { this.value = Types.isString(obj) ? obj : ''; if (this.aceEditor) { @@ -87,6 +87,8 @@ export class CodeEditorComponent extends StatefulControlComponent impl this.aceEditor.on('change', () => { this.valueChanged.next(); }); + + this.detach(); }); } diff --git a/src/Squidex/app/framework/angular/forms/json-editor.component.ts b/src/Squidex/app/framework/angular/forms/json-editor.component.ts index 87bf0dadf..dbfabf43e 100644 --- a/src/Squidex/app/framework/angular/forms/json-editor.component.ts +++ b/src/Squidex/app/framework/angular/forms/json-editor.component.ts @@ -87,6 +87,8 @@ export class JsonEditorComponent extends StatefulControlComponent<{}, string> im this.aceEditor.on('change', () => { this.valueChanged.next(); }); + + this.detach(); }); } diff --git a/src/Squidex/app/framework/angular/stateful.component.ts b/src/Squidex/app/framework/angular/stateful.component.ts index dcf50299e..9c1cc23f3 100644 --- a/src/Squidex/app/framework/angular/stateful.component.ts +++ b/src/Squidex/app/framework/angular/stateful.component.ts @@ -52,7 +52,7 @@ export class ResourceOwner implements OnDestroy { export abstract class StatefulComponent extends State implements OnDestroy { private readonly subscriptions = new ResourceOwner(); - private subscription: Subscription; + private readonly subscription: Subscription; constructor( private readonly changeDetector: ChangeDetectorRef, @@ -76,6 +76,10 @@ export abstract class StatefulComponent extends State implements OnD this.subscriptions.unsubscribeAll(); } + protected detach() { + this.changeDetector.detach(); + } + protected detectChanges() { this.changeDetector.detectChanges(); }