From 1c8c3de0a8539defc22f9f1dd473be60f884fb9c Mon Sep 17 00:00:00 2001
From: jojohoch <joachim.hoch@iqb.hu-berlin.de>
Date: Tue, 18 Jan 2022 17:29:03 +0100
Subject: [PATCH] [player] Use elementComponent in ElementContainerComponent as
 property

---
 .../element-container.component.ts            | 31 ++++++++++---------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/projects/player/src/app/components/element-container/element-container.component.ts b/projects/player/src/app/components/element-container/element-container.component.ts
index eb63512fa..e1cddc1ab 100644
--- a/projects/player/src/app/components/element-container/element-container.component.ts
+++ b/projects/player/src/app/components/element-container/element-container.component.ts
@@ -41,6 +41,7 @@ export class ElementContainerComponent implements OnInit {
   @Input() parentArrayIndex!: number;
   @Input() pageIndex!: number;
 
+  elementComponent!: ElementComponent;
   isKeyboardOpen!: boolean;
   selectedColor!: string | null;
   selectedMode!: 'mark' | 'delete' | null;
@@ -64,30 +65,30 @@ export class ElementContainerComponent implements OnInit {
   }
 
   ngOnInit(): void {
-    const elementComponent: ElementComponent = this.initElementComponent();
-    this.registerAtUnitStateService(elementComponent);
+    this.elementComponent = this.initElementComponent();
+    this.registerAtUnitStateService(this.elementComponent);
 
-    if (elementComponent instanceof FormElementComponent) {
-      this.initFormElement(elementComponent);
-    } else if (elementComponent instanceof CompoundElementComponent) {
-      this.initCompoundElement(elementComponent);
-    } else if (elementComponent instanceof MediaPlayerElementComponent) {
+    if (this.elementComponent instanceof FormElementComponent) {
+      this.initFormElement(this.elementComponent);
+    } else if (this.elementComponent instanceof CompoundElementComponent) {
+      this.initCompoundElement(this.elementComponent);
+    } else if (this.elementComponent instanceof MediaPlayerElementComponent) {
       this.mediaPlayerService.registerMediaElement(
         this.elementModel.id,
-        elementComponent,
+        this.elementComponent,
         this.elementModel.playerProps?.activeAfterID as string,
         this.elementModel.playerProps?.minRuns as number === 0
       );
     }
-    this.subscribeStartSelection(elementComponent as TextComponent);
-    this.subscribeApplySelection(elementComponent as TextComponent);
-    this.subscribeMediaPlayStatusChanged(elementComponent as MediaPlayerElementComponent);
-    this.subscribeMediaValidStatusChanged(elementComponent as MediaPlayerElementComponent);
-    this.subscribeNavigationRequested(elementComponent as ButtonComponent);
+    this.subscribeStartSelection(this.elementComponent as TextComponent);
+    this.subscribeApplySelection(this.elementComponent as TextComponent);
+    this.subscribeMediaPlayStatusChanged(this.elementComponent as MediaPlayerElementComponent);
+    this.subscribeMediaValidStatusChanged(this.elementComponent as MediaPlayerElementComponent);
+    this.subscribeNavigationRequested(this.elementComponent as ButtonComponent);
     this.subscribeElementValueChanged(
-      elementComponent as FormElementComponent | TextComponent | ImageComponent | MediaPlayerElementComponent
+      this.elementComponent as FormElementComponent | TextComponent | ImageComponent | MediaPlayerElementComponent
     );
-    this.subscribeForKeyboardEvents(elementComponent as TextFieldComponent | TextAreaComponent);
+    this.subscribeForKeyboardEvents(this.elementComponent as TextFieldComponent | TextAreaComponent);
   }
 
   private initElementComponent(): ElementComponent {
-- 
GitLab