diff --git a/src/app/app.component.html b/src/app/app.component.html index d728138..3dee7cb 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,3 +1,9 @@ + Test (version: {{version}}) + + + + + \ No newline at end of file diff --git a/src/app/app.component.ts b/src/app/app.component.ts index ff7e327..6e1a918 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,5 +1,5 @@ import { Component } from '@angular/core'; -import { GetVersion, GetVersionCallbackDetail } from './services/go'; +import { GetVersion, GetVersionCallbackDetail, RunGame } from './services/go'; @Component({ selector: 'app-root', @@ -19,4 +19,8 @@ export class AppComponent { }); GetVersion(); } + + RunGame() { + RunGame(); + } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index a7e6b55..5bdaea0 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,3 +1,7 @@ +import { NgDompurifySanitizer } from "@tinkoff/ng-dompurify"; +import { TuiRootModule, TuiDialogModule, TuiAlertModule, TUI_SANITIZER } from "@taiga-ui/core"; +import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; +import {TuiButtonModule} from '@taiga-ui/core'; import { APP_BASE_HREF, LocationStrategy, @@ -8,14 +12,19 @@ import { BrowserModule } from '@angular/platform-browser'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; +import { GamesBarComponent } from './games-bar/games-bar.component'; +import { GameButtonComponent } from './games-bar/game-button/game-button.component'; +import { TuiAvatarModule } from "@taiga-ui/kit"; + @NgModule({ - declarations: [AppComponent], - imports: [BrowserModule, AppRoutingModule], + declarations: [AppComponent, GamesBarComponent, GameButtonComponent], + imports: [BrowserModule, AppRoutingModule, BrowserAnimationsModule, TuiRootModule, TuiDialogModule, TuiAlertModule, TuiButtonModule, TuiAvatarModule], providers: [ { provide: APP_BASE_HREF, useValue: '/' }, { provide: LocationStrategy, useClass: HashLocationStrategy }, - ], + {provide: TUI_SANITIZER, useClass: NgDompurifySanitizer} +], bootstrap: [AppComponent], }) export class AppModule {} diff --git a/src/app/games-bar/game-button/game-button.component.html b/src/app/games-bar/game-button/game-button.component.html new file mode 100644 index 0000000..a4a95c6 --- /dev/null +++ b/src/app/games-bar/game-button/game-button.component.html @@ -0,0 +1,17 @@ + + + + + diff --git a/src/app/games-bar/game-button/game-button.component.scss b/src/app/games-bar/game-button/game-button.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/games-bar/game-button/game-button.component.spec.ts b/src/app/games-bar/game-button/game-button.component.spec.ts new file mode 100644 index 0000000..85bf386 --- /dev/null +++ b/src/app/games-bar/game-button/game-button.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { GameButtonComponent } from './game-button.component'; + +describe('GameButtonComponent', () => { + let component: GameButtonComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ GameButtonComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(GameButtonComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/games-bar/game-button/game-button.component.ts b/src/app/games-bar/game-button/game-button.component.ts new file mode 100644 index 0000000..2abb4e7 --- /dev/null +++ b/src/app/games-bar/game-button/game-button.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-game-button', + templateUrl: './game-button.component.html', + styleUrls: ['./game-button.component.scss'] +}) +export class GameButtonComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/games-bar/games-bar.component.html b/src/app/games-bar/games-bar.component.html new file mode 100644 index 0000000..d698516 --- /dev/null +++ b/src/app/games-bar/games-bar.component.html @@ -0,0 +1,5 @@ + + + name: {{item.name}} +
{{player}}
+
\ No newline at end of file diff --git a/src/app/games-bar/games-bar.component.scss b/src/app/games-bar/games-bar.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/games-bar/games-bar.component.spec.ts b/src/app/games-bar/games-bar.component.spec.ts new file mode 100644 index 0000000..5b7c125 --- /dev/null +++ b/src/app/games-bar/games-bar.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { GamesBarComponent } from './games-bar.component'; + +describe('GamesBarComponent', () => { + let component: GamesBarComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ GamesBarComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(GamesBarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/games-bar/games-bar.component.ts b/src/app/games-bar/games-bar.component.ts new file mode 100644 index 0000000..d7a3f2f --- /dev/null +++ b/src/app/games-bar/games-bar.component.ts @@ -0,0 +1,39 @@ +import { Component, OnInit } from '@angular/core'; +import { LauncherService } from '../services/launcher.service'; +import { Game } from '../services/oxana.service'; + +@Component({ + selector: 'app-games-bar', + templateUrl: './games-bar.component.html', + styleUrls: ['./games-bar.component.scss'] +}) + +export class GamesBarComponent implements OnInit { + constructor(private launcher: LauncherService) { } + + games!: Game[] + // games: Game[] = [{ + // name: 'str', + // players: ['1', '2'] + // }, + // { + // name: 'qwe', + // players: ['6', '4'] + // }] + + + ngOnInit(): void { + // let i = 0 + // setInterval(() => { + // this.games.push({name: `name-${++i}`, players: []}) + // }, 100) + this.games = this.launcher.GetGames() + console.log("asdasd") + console.log(this.games) + } + + // removePlayerZero (item: Game) { + // if (item.players.length == 0) return + // item.players.splice(0, 1) + // } +} diff --git a/src/app/services/go.ts b/src/app/services/go.ts index 585898d..596d44f 100644 --- a/src/app/services/go.ts +++ b/src/app/services/go.ts @@ -1,12 +1,13 @@ export interface Go extends Window { GetVersion: () => string; + RunGame: () => string; } export interface GoCallback extends Window { SetVersion: (value: string) => void; } -let { GetVersion } = window as unknown as Go; +let { GetVersion, RunGame} = window as unknown as Go; let { SetVersion } = window as unknown as GoCallback; export declare type GetVersionCallbackDetail = string; @@ -17,5 +18,4 @@ export declare type GetVersionCallbackDetail = string; }); document.dispatchEvent(event); }; - -export { GetVersion, SetVersion }; +export { GetVersion, SetVersion, RunGame}; diff --git a/src/app/services/launcher.service.spec.ts b/src/app/services/launcher.service.spec.ts new file mode 100644 index 0000000..794c9dd --- /dev/null +++ b/src/app/services/launcher.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { LauncherService } from './launcher.service'; + +describe('LauncherService', () => { + let service: LauncherService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(LauncherService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/launcher.service.ts b/src/app/services/launcher.service.ts new file mode 100644 index 0000000..1e83783 --- /dev/null +++ b/src/app/services/launcher.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; +import { Game } from './oxana.service'; +@Injectable({ + providedIn: 'root' +}) +export class LauncherService { + + constructor() { } + + public GetGames(): Game[]{ + var currentGames :Game[] = [ + { name: "ad", icon: "string", id: "string"}, + { name: "qwet", icon: "string", id: "string"}, + { name: "1233", icon: "string", id: "string"}, + { name: "ghjghj", icon: "string", id: "string"} + ] + return currentGames + } +} diff --git a/src/app/services/oxana.service.spec.ts b/src/app/services/oxana.service.spec.ts new file mode 100644 index 0000000..4fdbba0 --- /dev/null +++ b/src/app/services/oxana.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { OxanaService } from './oxana.service'; + +describe('OxanaService', () => { + let service: OxanaService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(OxanaService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/oxana.service.ts b/src/app/services/oxana.service.ts new file mode 100644 index 0000000..7395e0a --- /dev/null +++ b/src/app/services/oxana.service.ts @@ -0,0 +1,23 @@ +import { Injectable } from '@angular/core'; +import { LauncherService } from './launcher.service'; + +@Injectable({ + providedIn: 'root' +}) + + +export class OxanaService { + private games!: Game + constructor(private launcher: LauncherService) { } + + // public getGames():Game{ + // currentGames = launcher.GetGames() + // return currentGames + // } +} + +export interface Game { + name: string + icon: string + id: string +}