diff --git a/src/app/services/dialog.service.ts b/src/app/services/dialog.service.ts index b77590e71..9bbdb60df 100644 --- a/src/app/services/dialog.service.ts +++ b/src/app/services/dialog.service.ts @@ -1,7 +1,7 @@ -import { ConfirmDialogComponent } from './../shared/components/confirm-dialog/confirm-dialog.component'; -import { MatDialog } from '@angular/material/dialog'; import { Injectable } from '@angular/core'; -import { ConfirmDialogData } from '../shared/components/confirm-dialog/confirm-dialog.component'; +import { MatDialog } from '@angular/material/dialog'; +import { ConfirmDialogData } from '../shared/components/confirm-dialog/confirm-dialog-data.interface'; +import { ConfirmDialogComponent } from './../shared/components/confirm-dialog/confirm-dialog.component'; @Injectable({ providedIn: 'root', @@ -14,7 +14,10 @@ export class DialogService { * @param data dialog meta info */ openConfirmDialog(data: ConfirmDialogData): void { - const dialogRef = this.dialog.open(ConfirmDialogComponent, { + const dialogRef = this.dialog.open< + ConfirmDialogComponent, + ConfirmDialogData + >(ConfirmDialogComponent, { data, width: '300px', }); diff --git a/src/app/shared/components/about-dialog/about-dialog.component.html b/src/app/shared/components/about-dialog/about-dialog.component.html deleted file mode 100644 index 4740e9e61..000000000 --- a/src/app/shared/components/about-dialog/about-dialog.component.html +++ /dev/null @@ -1,38 +0,0 @@ -
-
-

About IPTVnator

-

- Cross-platform IPTV player application with multiple features, such as - support of m3u and m3u8 playlists, favorites, TV guide, TV - archive/catchup and more. -

-

Version: {{ appVersion }}

-

-   - - - - local_cafe -

-
diff --git a/src/app/shared/components/about-dialog/about-dialog.component.scss b/src/app/shared/components/about-dialog/about-dialog.component.scss deleted file mode 100644 index 1a37e0913..000000000 --- a/src/app/shared/components/about-dialog/about-dialog.component.scss +++ /dev/null @@ -1,11 +0,0 @@ -button { - text-transform: uppercase; -} - -a { - color: #fff; -} - -.mat-icon { - font-size: 32px; -} diff --git a/src/app/shared/components/about-dialog/about-dialog.component.spec.ts b/src/app/shared/components/about-dialog/about-dialog.component.spec.ts deleted file mode 100644 index b7bd5fcbb..000000000 --- a/src/app/shared/components/about-dialog/about-dialog.component.spec.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatIconModule } from '@angular/material/icon'; -import { MockModule } from 'ng-mocks'; -import { DataService } from '../../../services/data.service'; -import { ElectronServiceStub } from '../../../services/electron.service.stub'; -import { AboutDialogComponent } from './about-dialog.component'; - -describe('AboutDialogComponent', () => { - let component: AboutDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [AboutDialogComponent], - providers: [ - { - provide: DataService, - useClass: ElectronServiceStub, - }, - ], - imports: [MockModule(MatIconModule)], - }).compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(AboutDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/shared/components/about-dialog/about-dialog.component.ts b/src/app/shared/components/about-dialog/about-dialog.component.ts index 0d3056315..8dbc4f57d 100644 --- a/src/app/shared/components/about-dialog/about-dialog.component.ts +++ b/src/app/shared/components/about-dialog/about-dialog.component.ts @@ -1,15 +1,60 @@ -import { Component } from '@angular/core'; -import { DataService } from '../../../services/data.service'; +import { Component, Inject } from '@angular/core'; +import { MAT_DIALOG_DATA } from '@angular/material/dialog'; @Component({ selector: 'app-about-dialog', - templateUrl: './about-dialog.component.html', - styleUrls: ['./about-dialog.component.scss'], + template: ` +
+
+

{{ 'ABOUT.TITLE' | translate }}

+

{{ 'ABOUT.DESCRIPTION' | translate }}

+

Version: {{ appVersion }}

+

+   + + + + local_cafe +

+
+ `, + styles: [ + ` + button { + text-transform: uppercase; + } + + a { + color: #fff; + } + + .mat-icon { + font-size: 32px; + } + `, + ], }) export class AboutDialogComponent { - /** Version of the application */ - appVersion = this.dataService.getAppVersion(); - - /** Default constructor */ - constructor(private dataService: DataService) {} + constructor(@Inject(MAT_DIALOG_DATA) private appVersion: string) {} } diff --git a/src/app/shared/components/confirm-dialog/confirm-dialog-data.interface.ts b/src/app/shared/components/confirm-dialog/confirm-dialog-data.interface.ts new file mode 100644 index 000000000..691695278 --- /dev/null +++ b/src/app/shared/components/confirm-dialog/confirm-dialog-data.interface.ts @@ -0,0 +1,7 @@ +export interface ConfirmDialogData { + title: string; + message: string; + confirmLabel?: string; + cancelLabel?: string; + onConfirm: () => void; +} diff --git a/src/app/shared/components/confirm-dialog/confirm-dialog.component.html b/src/app/shared/components/confirm-dialog/confirm-dialog.component.html deleted file mode 100644 index 320ea3262..000000000 --- a/src/app/shared/components/confirm-dialog/confirm-dialog.component.html +++ /dev/null @@ -1,14 +0,0 @@ -

- {{ dialogData?.title }} -

- - {{ dialogData?.message }} - - - - - diff --git a/src/app/shared/components/confirm-dialog/confirm-dialog.component.spec.ts b/src/app/shared/components/confirm-dialog/confirm-dialog.component.spec.ts deleted file mode 100644 index b03504349..000000000 --- a/src/app/shared/components/confirm-dialog/confirm-dialog.component.spec.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { TranslatePipe, TranslateService } from '@ngx-translate/core'; -import { MockModule, MockPipe, MockProvider } from 'ng-mocks'; -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; -import { ConfirmDialogComponent } from './confirm-dialog.component'; -import { - MatDialog, - MatDialogModule, - MAT_DIALOG_DATA, -} from '@angular/material/dialog'; - -describe('ConfirmDialogComponent', () => { - let component: ConfirmDialogComponent; - let fixture: ComponentFixture; - - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [ - ConfirmDialogComponent, - MockPipe(TranslatePipe, (value) => JSON.stringify(value)), - ], - providers: [ - MockProvider(MatDialog), - MockProvider(MAT_DIALOG_DATA), - MockProvider(TranslateService), - ], - imports: [MockModule(MatDialogModule)], - }).compileComponents(); - }) - ); - - beforeEach(() => { - fixture = TestBed.createComponent(ConfirmDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/shared/components/confirm-dialog/confirm-dialog.component.ts b/src/app/shared/components/confirm-dialog/confirm-dialog.component.ts index d6d6878ce..45057c891 100644 --- a/src/app/shared/components/confirm-dialog/confirm-dialog.component.ts +++ b/src/app/shared/components/confirm-dialog/confirm-dialog.component.ts @@ -1,25 +1,29 @@ -import { MAT_DIALOG_DATA } from '@angular/material/dialog'; import { Component, Inject } from '@angular/core'; - -export interface ConfirmDialogData { - title: string; - message: string; - confirmLabel?: string; - cancelLabel?: string; - onConfirm: () => void; -} - +import { MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { ConfirmDialogData } from './confirm-dialog-data.interface'; @Component({ selector: 'app-confirm-dialog', - templateUrl: './confirm-dialog.component.html', + template: ` +

+ {{ dialogData.title }} +

+ + {{ dialogData.message }} + + + + + + `, }) export class ConfirmDialogComponent { /** Contains meta information to show in the dialog */ - dialogData; + dialogData!: ConfirmDialogData; - /** Creates an instance of ConfirmDialogComponent - * @param data dialog data - */ constructor(@Inject(MAT_DIALOG_DATA) data: ConfirmDialogData) { this.dialogData = data; } diff --git a/src/app/shared/components/header/header.component.ts b/src/app/shared/components/header/header.component.ts index f12777265..27a4f260a 100644 --- a/src/app/shared/components/header/header.component.ts +++ b/src/app/shared/components/header/header.component.ts @@ -79,6 +79,7 @@ export class HeaderComponent implements OnInit { this.dialog.open(AboutDialogComponent, { panelClass: 'about-dialog-overlay', width: '600px', + data: this.dataService.getAppVersion(), }); } } diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index caea9f9a6..ee95d384d 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -144,5 +144,9 @@ "WHAT_IS_NEW": "What is new", "ABOUT": "About", "ABOUT_ARIA": "About the application" + }, + "ABOUT": { + "TITLE": "About IPTVnator", + "DESCRIPTION": "Cross-platform IPTV player application with multiple features, such as support of m3u and m3u8 playlists, favorites, TV guide, TV archive/catchup and more." } }