From 174d77d2eaedb17b2e729efdc29a07e7942e46e5 Mon Sep 17 00:00:00 2001 From: Valentin Mihai Date: Mon, 20 May 2024 17:10:25 +0300 Subject: [PATCH] RED-8882 - moved help mode dialog preference into iqser-user-preferences.service --- .../help-mode-dialog.component.ts | 12 ++++--- src/lib/help-mode/help-mode.service.ts | 31 ++++++++++--------- .../services/iqser-user-preference.service.ts | 12 ++++++- 3 files changed, 34 insertions(+), 21 deletions(-) diff --git a/src/lib/help-mode/help-mode-dialog/help-mode-dialog.component.ts b/src/lib/help-mode/help-mode-dialog/help-mode-dialog.component.ts index 935eccf..f44e035 100644 --- a/src/lib/help-mode/help-mode-dialog/help-mode-dialog.component.ts +++ b/src/lib/help-mode/help-mode-dialog/help-mode-dialog.component.ts @@ -1,4 +1,6 @@ import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatDialogRef } from '@angular/material/dialog'; +import { BaseDialogComponent } from '../../dialog'; const HIGHER_CDK_OVERLAY_CONTAINER_ZINDEX = '1200'; const DEFAULT_CDK_OVERLAY_CONTAINER_ZINDEX = '800'; @@ -8,12 +10,12 @@ const DEFAULT_CDK_OVERLAY_CONTAINER_ZINDEX = '800'; styleUrls: ['./help-mode-dialog.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -export class HelpModeDialogComponent implements OnInit, OnDestroy { +export class HelpModeDialogComponent extends BaseDialogComponent implements OnInit, OnDestroy { protected doNotShowAgainOption = false; - // constructor(protected readonly _dialogRef: MatDialogRef) { - // super(_dialogRef); - // } + constructor(protected readonly _dialogRef: MatDialogRef) { + super(_dialogRef); + } ngOnInit(): void { this._setCdkOverlayContainerZIndex(HIGHER_CDK_OVERLAY_CONTAINER_ZINDEX); @@ -32,7 +34,7 @@ export class HelpModeDialogComponent implements OnInit, OnDestroy { } close() { - // return this._dialogRef.close(this.doNotShowAgainOption); + return this._dialogRef.close(this.doNotShowAgainOption); } private _setCdkOverlayContainerZIndex(zIndex: string): void { diff --git a/src/lib/help-mode/help-mode.service.ts b/src/lib/help-mode/help-mode.service.ts index 059ab2a..36e8a65 100644 --- a/src/lib/help-mode/help-mode.service.ts +++ b/src/lib/help-mode/help-mode.service.ts @@ -16,7 +16,7 @@ import { ScrollableParentViews, WEB_VIEWER_ELEMENTS, } from './utils/constants'; -import { getConfig } from '../services'; +import { getConfig, IqserUserPreferenceService } from '../services'; import { MatDialog } from '@angular/material/dialog'; export interface Helper { @@ -53,6 +53,7 @@ export class HelpModeService { private readonly _dialog: MatDialog, private readonly _rendererFactory: RendererFactory2, private readonly _translateService: TranslateService, + private readonly _iqserUserPreferenceService: IqserUserPreferenceService, ) { this.#renderer = this._rendererFactory.createRenderer(null, null); } @@ -66,20 +67,20 @@ export class HelpModeService { } async openHelpModeDialog() { - // if (!this._userPreferencesService.getHelpModeDialog()) { - // this.#helpModeDialogIsOpened$.next(true); - // - // const ref = this._dialog.open(HelpModeDialogComponent, { - // width: '600px', - // }); - // - // firstValueFrom(ref.afterClosed()).then(result => { - // this.#helpModeDialogIsOpened$.next(false); - // if (result) { - // this._userPreferencesService.toggleHelpModeDialog(); - // } - // }); - // } + if (!this._iqserUserPreferenceService.getHelpModeDialog()) { + this.#helpModeDialogIsOpened$.next(true); + + const ref = this._dialog.open(HelpModeDialogComponent, { + width: '600px', + }); + + firstValueFrom(ref.afterClosed()).then(result => { + this.#helpModeDialogIsOpened$.next(false); + if (result) { + this._iqserUserPreferenceService.toggleHelpModeDialog(); + } + }); + } } activateHelpMode(dialogMode: boolean = false): void { diff --git a/src/lib/services/iqser-user-preference.service.ts b/src/lib/services/iqser-user-preference.service.ts index a841b8a..1bafc99 100644 --- a/src/lib/services/iqser-user-preference.service.ts +++ b/src/lib/services/iqser-user-preference.service.ts @@ -6,9 +6,10 @@ import { APP_BASE_HREF } from '@angular/common'; export type UserAttributes = Record; -const KEYS = { +export const KEYS = { language: 'Language', theme: 'Theme', + helpModeDialog: 'HelpModeDialog', } as const; @Injectable() @@ -43,6 +44,15 @@ export abstract class IqserUserPreferenceService extends GenericService { + const nextValue = (!this.getHelpModeDialog()).toString(); + await this.save(KEYS.helpModeDialog, nextValue); + } + toggleDevFeatures(): void { sessionStorage.setItem(this._devFeaturesEnabledKey, String(!this.isIqserDevMode)); window.location.reload();