Browse Source

Merge branch 'main' into feature/enable-strict-null-checks-in-ui

pull/6264/head
Kenrick Tandrian 3 weeks ago
committed by GitHub
parent
commit
0113ac146a
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 15
      libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts
  2. 3
      libs/ui/src/lib/notifications/alert-dialog/interfaces/interfaces.ts
  3. 27
      libs/ui/src/lib/notifications/confirmation-dialog/confirmation-dialog.component.ts
  4. 4
      libs/ui/src/lib/notifications/confirmation-dialog/interfaces/interfaces.ts
  5. 30
      libs/ui/src/lib/notifications/notification.service.ts
  6. 7
      libs/ui/src/lib/notifications/prompt-dialog/interfaces/interfaces.ts
  7. 33
      libs/ui/src/lib/notifications/prompt-dialog/prompt-dialog.component.ts

15
libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts

@ -1,4 +1,4 @@
import { Component } from '@angular/core'; import { Component, inject } from '@angular/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatDialogModule, MatDialogRef } from '@angular/material/dialog'; import { MatDialogModule, MatDialogRef } from '@angular/material/dialog';
@ -11,15 +11,16 @@ import { AlertDialogParams } from './interfaces/interfaces';
templateUrl: './alert-dialog.html' templateUrl: './alert-dialog.html'
}) })
export class GfAlertDialogComponent { export class GfAlertDialogComponent {
public discardLabel?: string; public discardLabel: string;
public message?: string; public message?: string;
public title: string; public title: string;
public constructor(public dialogRef: MatDialogRef<GfAlertDialogComponent>) {} protected readonly dialogRef =
inject<MatDialogRef<GfAlertDialogComponent>>(MatDialogRef);
public initialize(aParams: AlertDialogParams) { public initialize({ discardLabel, message, title }: AlertDialogParams) {
this.discardLabel = aParams.discardLabel; this.discardLabel = discardLabel;
this.message = aParams.message; this.message = message;
this.title = aParams.title; this.title = title;
} }
} }

3
libs/ui/src/lib/notifications/alert-dialog/interfaces/interfaces.ts

@ -1,6 +1,5 @@
export interface AlertDialogParams { export interface AlertDialogParams {
confirmLabel?: string; discardLabel: string;
discardLabel?: string;
message?: string; message?: string;
title: string; title: string;
} }

27
libs/ui/src/lib/notifications/confirmation-dialog/confirmation-dialog.component.ts

@ -1,6 +1,6 @@
import { ConfirmationDialogType } from '@ghostfolio/common/enums'; import { ConfirmationDialogType } from '@ghostfolio/common/enums';
import { Component, HostListener } from '@angular/core'; import { Component, HostListener, inject } from '@angular/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatDialogModule, MatDialogRef } from '@angular/material/dialog'; import { MatDialogModule, MatDialogRef } from '@angular/material/dialog';
@ -15,13 +15,12 @@ import { ConfirmDialogParams } from './interfaces/interfaces';
export class GfConfirmationDialogComponent { export class GfConfirmationDialogComponent {
public confirmLabel?: string; public confirmLabel?: string;
public confirmType: ConfirmationDialogType; public confirmType: ConfirmationDialogType;
public discardLabel?: string; public discardLabel: string;
public message?: string; public message?: string;
public title: string; public title: string;
public constructor( protected readonly dialogRef =
public dialogRef: MatDialogRef<GfConfirmationDialogComponent> inject<MatDialogRef<GfConfirmationDialogComponent>>(MatDialogRef);
) {}
@HostListener('window:keyup', ['$event']) @HostListener('window:keyup', ['$event'])
public keyEvent(event: KeyboardEvent) { public keyEvent(event: KeyboardEvent) {
@ -30,11 +29,17 @@ export class GfConfirmationDialogComponent {
} }
} }
public initialize(aParams: ConfirmDialogParams) { public initialize({
this.confirmLabel = aParams.confirmLabel; confirmLabel,
this.confirmType = aParams.confirmType; confirmType,
this.discardLabel = aParams.discardLabel; discardLabel,
this.message = aParams.message; message,
this.title = aParams.title; title
}: ConfirmDialogParams) {
this.confirmLabel = confirmLabel;
this.confirmType = confirmType;
this.discardLabel = discardLabel;
this.message = message;
this.title = title;
} }
} }

4
libs/ui/src/lib/notifications/confirmation-dialog/interfaces/interfaces.ts

@ -1,9 +1,9 @@
import { ConfirmationDialogType } from '@ghostfolio/common/enums'; import { ConfirmationDialogType } from '@ghostfolio/common/enums';
export interface ConfirmDialogParams { export interface ConfirmDialogParams {
confirmLabel?: string; confirmLabel: string;
confirmType: ConfirmationDialogType; confirmType: ConfirmationDialogType;
discardLabel?: string; discardLabel: string;
message?: string; message?: string;
title: string; title: string;
} }

30
libs/ui/src/lib/notifications/notification.service.ts

@ -1,7 +1,7 @@
import { ConfirmationDialogType } from '@ghostfolio/common/enums'; import { ConfirmationDialogType } from '@ghostfolio/common/enums';
import { translate } from '@ghostfolio/ui/i18n'; import { translate } from '@ghostfolio/ui/i18n';
import { Injectable } from '@angular/core'; import { inject, Injectable } from '@angular/core';
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { isFunction } from 'lodash'; import { isFunction } from 'lodash';
@ -19,12 +19,10 @@ export class NotificationService {
private dialogMaxWidth: string; private dialogMaxWidth: string;
private dialogWidth: string; private dialogWidth: string;
public constructor(private matDialog: MatDialog) {} private readonly matDialog = inject(MatDialog);
public alert(aParams: AlertParams) { public alert(aParams: AlertParams) {
if (!aParams.discardLabel) { aParams.discardLabel ??= translate('CLOSE');
aParams.discardLabel = translate('CLOSE');
}
const dialog = this.matDialog.open(GfAlertDialogComponent, { const dialog = this.matDialog.open(GfAlertDialogComponent, {
autoFocus: false, autoFocus: false,
@ -46,24 +44,19 @@ export class NotificationService {
} }
public confirm(aParams: ConfirmParams) { public confirm(aParams: ConfirmParams) {
if (!aParams.confirmLabel) { aParams.confirmLabel ??= translate('YES');
aParams.confirmLabel = translate('YES'); aParams.discardLabel ??= translate('CANCEL');
}
if (!aParams.discardLabel) {
aParams.discardLabel = translate('CANCEL');
}
const dialog = this.matDialog.open(GfConfirmationDialogComponent, { const dialog = this.matDialog.open(GfConfirmationDialogComponent, {
autoFocus: false, autoFocus: false,
disableClose: aParams.disableClose || false, disableClose: aParams.disableClose ?? false,
maxWidth: this.dialogMaxWidth, maxWidth: this.dialogMaxWidth,
width: this.dialogWidth width: this.dialogWidth
}); });
dialog.componentInstance.initialize({ dialog.componentInstance.initialize({
confirmLabel: aParams.confirmLabel, confirmLabel: aParams.confirmLabel,
confirmType: aParams.confirmType || ConfirmationDialogType.Primary, confirmType: aParams.confirmType ?? ConfirmationDialogType.Primary,
discardLabel: aParams.discardLabel, discardLabel: aParams.discardLabel,
message: aParams.message, message: aParams.message,
title: aParams.title title: aParams.title
@ -79,13 +72,8 @@ export class NotificationService {
} }
public prompt(aParams: PromptParams) { public prompt(aParams: PromptParams) {
if (!aParams.confirmLabel) { aParams.confirmLabel ??= translate('OK');
aParams.confirmLabel = translate('OK'); aParams.discardLabel ??= translate('CANCEL');
}
if (!aParams.discardLabel) {
aParams.discardLabel = translate('CANCEL');
}
const dialog = this.matDialog.open(GfPromptDialogComponent, { const dialog = this.matDialog.open(GfPromptDialogComponent, {
autoFocus: true, autoFocus: true,

7
libs/ui/src/lib/notifications/prompt-dialog/interfaces/interfaces.ts

@ -0,0 +1,7 @@
export interface PromptDialogParams {
confirmLabel: string;
defaultValue?: string;
discardLabel: string;
title: string;
valueLabel?: string;
}

33
libs/ui/src/lib/notifications/prompt-dialog/prompt-dialog.component.ts

@ -1,10 +1,12 @@
import { Component } from '@angular/core'; import { Component, inject } from '@angular/core';
import { FormControl, ReactiveFormsModule } from '@angular/forms'; import { FormControl, ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatDialogModule, MatDialogRef } from '@angular/material/dialog'; import { MatDialogModule, MatDialogRef } from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field'; import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input'; import { MatInputModule } from '@angular/material/input';
import { PromptDialogParams } from './interfaces/interfaces';
@Component({ @Component({
imports: [ imports: [
MatButtonModule, MatButtonModule,
@ -24,20 +26,21 @@ export class GfPromptDialogComponent {
public title: string; public title: string;
public valueLabel?: string; public valueLabel?: string;
public constructor(public dialogRef: MatDialogRef<GfPromptDialogComponent>) {} protected readonly dialogRef =
inject<MatDialogRef<GfPromptDialogComponent>>(MatDialogRef);
public initialize(aParams: { public initialize({
confirmLabel: string; confirmLabel,
defaultValue?: string; defaultValue,
discardLabel: string; discardLabel,
title: string; title,
valueLabel?: string; valueLabel
}) { }: PromptDialogParams) {
this.confirmLabel = aParams.confirmLabel; this.confirmLabel = confirmLabel;
this.defaultValue = aParams.defaultValue; this.defaultValue = defaultValue;
this.discardLabel = aParams.discardLabel; this.discardLabel = discardLabel;
this.formControl.setValue(aParams.defaultValue ?? null); this.formControl.setValue(defaultValue ?? null);
this.title = aParams.title; this.title = title;
this.valueLabel = aParams.valueLabel; this.valueLabel = valueLabel;
} }
} }

Loading…
Cancel
Save