diff --git a/src/app/app.component.html b/src/app/app.component.html index 06cf464..8ff3071 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -21,3 +21,4 @@ [currentUserId]="sharedService.currentUserId" > } + diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 8d28f01..2c3506c 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -8,6 +8,7 @@ import { ContactEditComponent } from './components/contacts/contact-edit/contact import { CommonModule } from '@angular/common'; import { SharedService } from './services/shared.service'; import { ContactDeleteComponent } from './components/contacts/contact-delete/contact-delete.component'; +import { OverlayComponent } from './shared/components/overlay/overlay.component'; @Component({ selector: 'app-root', @@ -20,6 +21,7 @@ import { ContactDeleteComponent } from './components/contacts/contact-delete/con ContactEditComponent, ContactDeleteComponent, CommonModule, + OverlayComponent, ], templateUrl: './app.component.html', styleUrl: './app.component.scss', diff --git a/src/app/components/board/task/task.component.html b/src/app/components/board/task/task.component.html index 9821825..8f39bcb 100644 --- a/src/app/components/board/task/task.component.html +++ b/src/app/components/board/task/task.component.html @@ -1,4 +1,4 @@ -
+
(null); + overlayData$ = this.overlayDataSubject.asObservable(); + + constructor() {} + + setOverlayData(data: any) { + this.overlayDataSubject.next(data); + } +} diff --git a/src/app/shared/components/overlay/overlay.component.html b/src/app/shared/components/overlay/overlay.component.html new file mode 100644 index 0000000..b51b466 --- /dev/null +++ b/src/app/shared/components/overlay/overlay.component.html @@ -0,0 +1,3 @@ +
+
{{ overlayData }}
+
diff --git a/src/app/shared/components/overlay/overlay.component.scss b/src/app/shared/components/overlay/overlay.component.scss new file mode 100644 index 0000000..e1a449c --- /dev/null +++ b/src/app/shared/components/overlay/overlay.component.scss @@ -0,0 +1,21 @@ +.overlay { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + backdrop-filter: blur(5px); + display: flex; + justify-content: center; + align-items: center; + z-index: 999; +} + +.overlayContent { + display: flex; + align-items: center; + justify-content: center; + background-color: aqua; + height: auto; + width: auto; +} diff --git a/src/app/shared/components/overlay/overlay.component.spec.ts b/src/app/shared/components/overlay/overlay.component.spec.ts new file mode 100644 index 0000000..796c7ff --- /dev/null +++ b/src/app/shared/components/overlay/overlay.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { OverlayComponent } from './overlay.component'; + +describe('OverlayComponent', () => { + let component: OverlayComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [OverlayComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(OverlayComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/shared/components/overlay/overlay.component.ts b/src/app/shared/components/overlay/overlay.component.ts new file mode 100644 index 0000000..366441c --- /dev/null +++ b/src/app/shared/components/overlay/overlay.component.ts @@ -0,0 +1,41 @@ +import { + Component, + EventEmitter, + HostListener, + Input, + OnInit, + Output, +} from '@angular/core'; +import { OverlayService } from '../../../services/overlay.service'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-overlay', + standalone: true, + imports: [CommonModule], + templateUrl: './overlay.component.html', + styleUrl: './overlay.component.scss', +}) +export class OverlayComponent implements OnInit { + overlayData: any; + + constructor(private overlayService: OverlayService) {} + + ngOnInit(): void { + this.overlayService.overlayData$.subscribe((data) => { + this.overlayData = data; + }); + } + + onCloseOverlay() { + this.overlayData = ''; + } + + @HostListener('document:click', ['$event']) + checkOpenContactEdit(event: MouseEvent) { + const targetElement = event.target as HTMLElement; + if (targetElement.closest('.overlay-content')) { + this.onCloseOverlay(); + } + } +}