RED-8882 - moved help mode dialog preference into iqser-user-preferences.service

This commit is contained in:
Valentin Mihai 2024-05-20 17:10:25 +03:00
parent 848e46cf6a
commit 174d77d2ea
3 changed files with 34 additions and 21 deletions

View File

@ -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<HelpModeDialogComponent>) {
// super(_dialogRef);
// }
constructor(protected readonly _dialogRef: MatDialogRef<HelpModeDialogComponent>) {
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 {

View File

@ -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 {

View File

@ -6,9 +6,10 @@ import { APP_BASE_HREF } from '@angular/common';
export type UserAttributes = Record<string, List>;
const KEYS = {
export const KEYS = {
language: 'Language',
theme: 'Theme',
helpModeDialog: 'HelpModeDialog',
} as const;
@Injectable()
@ -43,6 +44,15 @@ export abstract class IqserUserPreferenceService extends GenericService<UserAttr
await this.save(KEYS.language, language);
}
getHelpModeDialog(): boolean {
return this._getAttribute(KEYS.helpModeDialog, 'false') === 'true';
}
async toggleHelpModeDialog(): Promise<void> {
const nextValue = (!this.getHelpModeDialog()).toString();
await this.save(KEYS.helpModeDialog, nextValue);
}
toggleDevFeatures(): void {
sessionStorage.setItem(this._devFeaturesEnabledKey, String(!this.isIqserDevMode));
window.location.reload();