diff --git a/projects/ui/src/lib/popup/popup.component.scss b/projects/ui/src/lib/popup/popup.component.scss
index 7018515..9ec70c7 100644
--- a/projects/ui/src/lib/popup/popup.component.scss
+++ b/projects/ui/src/lib/popup/popup.component.scss
@@ -58,6 +58,7 @@
justify-content: center;
align-items: center;
opacity: 0;
+ z-index: 100;
&.shown {
animation: showOverlay 0.2s ease 0s 1 forwards;
diff --git a/src/app/components/main/sections/game-page/game-page.component.html b/src/app/components/main/sections/game-page/game-page.component.html
index 2b7577c..2edbe48 100644
--- a/src/app/components/main/sections/game-page/game-page.component.html
+++ b/src/app/components/main/sections/game-page/game-page.component.html
@@ -1,12 +1,15 @@
-
+
+
+
+
😳🕶🤏
Church-key listicle whatever hoodie hexagon pour-over ascot paleo tacos, organic aesthetic tbh meggings raclette.
- -->
-
+
-
+
+
Play
-
+
\ No newline at end of file
diff --git a/src/app/components/main/sections/game-page/game-page.component.ts b/src/app/components/main/sections/game-page/game-page.component.ts
index 29cdec3..b9bec65 100644
--- a/src/app/components/main/sections/game-page/game-page.component.ts
+++ b/src/app/components/main/sections/game-page/game-page.component.ts
@@ -1,12 +1,10 @@
-import { inject, OnDestroy, TemplateRef, ViewChild } from '@angular/core';
-import { Component, OnInit } from '@angular/core';
-import { NavigationEnd, Router } from '@angular/router';
-import { PopupConfiguration } from 'projects/ui/src/lib/popup/popup.class';
-import { PopupDirective } from 'projects/ui/src/lib/popup/popup.directive';
-import { PopupService } from 'projects/ui/src/lib/popup/popup.service';
-import { first, Subscription } from 'rxjs';
-import { Game } from 'src/app/interfaces/game.interface';
-import { UiService } from 'src/app/services/ui.service';
+import { Component, inject, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core'
+import { NavigationEnd, Router } from '@angular/router'
+import { PopupDirective } from 'projects/ui/src/lib/popup/popup.directive'
+import { PopupService } from 'projects/ui/src/lib/popup/popup.service'
+import { Subscription } from 'rxjs'
+import { Game } from 'src/app/interfaces/game.interface'
+import { UiService } from 'src/app/services/ui.service'
@Component({
selector: 'app-game-page',
@@ -14,7 +12,10 @@ import { UiService } from 'src/app/services/ui.service';
styleUrls: ['./game-page.component.scss'],
})
export class GamePageComponent implements OnInit, OnDestroy {
- // @ViewChild(PopupDirective, { static: true }) popupPortal!: PopupDirective;
+ // File: name.component.ts
+ // 3. Получить в классе компонента элемент с директивой (портал из 1 пункта)
+ @ViewChild(PopupDirective, { static: true }) popupPortal!: PopupDirective;
+
uiService = inject(UiService)
subs: Map = new Map();
game: Game = {
@@ -40,8 +41,11 @@ export class GamePageComponent implements OnInit, OnDestroy {
]
constructor(
- private router: Router
- ) {} // private popup: PopupService
+ private router: Router,
+
+ // 4. Импортировать сервис для попап окон
+ private popup: PopupService
+ ) {}
ngOnInit(): void {
this.observeNavigation()
@@ -64,39 +68,24 @@ export class GamePageComponent implements OnInit, OnDestroy {
return this.tempImages[Math.floor(0 + Math.random() * ((this.tempImages.length - 1) + 1 - 0))]
}
- // openPopup(template?: TemplateRef) {
- // this.subs.set(
- // 'popup-events',
- // this.popup
- // .open(this.popupPortal, undefined, {
- // header: { closable: false, title: 'Warning' },
- // actions: [
- // {
- // title: 'I understand, delete file',
- // event: 'delete',
- // appearance: 'primary',
- // },
- // {
- // title: 'Do not delete',
- // event: 'cancel',
- // appearance: 'outline',
- // },
- // // {
- // // title: 'Primary button',
- // // event: 'button-2',
- // // appearance: 'primary',
- // // },
- // ],
- // overlay: {
- // closable: true,
- // // background: 'rgba(255, 255, 255, 1)',
- // },
- // body: 'Humblebrag chillwave sriracha, ramps polaroid distillery edison bulb palo santo etsy sus pabst knausgaard typewriter dreamcatcher.',
- // theme: 'dark',
- // })
- // .subscribe((event) => {
- // console.log(`event: ${event}`);
- // })
- // );
- // }
+ // 5. Написать метод для вызова попап окна, куда аргументом передается
+ // шаблон тела окна (из пункта 2)
+ openPopup(template?: TemplateRef) {
+ // Здесь мы подписываемся на ивента попап окна и сохраняем подписку, чтобы потом
+ // при дестрое компонента можно было от них отписаться
+ this.subs.set(
+ 'popup-events',
+ // при вызове передается:
+ // 1. popupPortal - портал для спавна оверлея с окном (пункт 1 в html, пункт 3 в ts),
+ // 2. template - шаблон тела окна, если он есть
+ // 3. объект с настройками окна (необязательный параметр), где можно кастомизировать внешний вид
+ // типа PopupConfig (\projects\ui\src\lib\popup\popup.class.ts)
+ this.popup
+ .open(this.popupPortal, template, {})
+ .subscribe((event) => {
+ // здесь описываются обработчики по нажатию на кнопки действий в попап окне
+ console.log(`event: ${event}`);
+ })
+ );
+ }
}