fix: additional bug fixes in OverlayComponent

This commit is contained in:
Chneemann 2025-04-06 15:54:18 +02:00
parent 0e0e2db776
commit 0be9f98cca
6 changed files with 209 additions and 230 deletions

View file

@ -83,13 +83,13 @@ export class AddTaskComponent implements OnInit {
} }
async loadExistingTaskData() { async loadExistingTaskData() {
if (this.overlayData) { if (this.overlayType === 'newTaskOverlay') {
this.taskData.status = this.overlayData;
} else if (this.overlayData) {
const taskData = await firstValueFrom(this.getTaskData(this.overlayData)); const taskData = await firstValueFrom(this.getTaskData(this.overlayData));
if (taskData) { if (taskData) {
this.taskData = { ...this.taskData, ...taskData }; this.taskData = { ...this.taskData, ...taskData };
} }
} else if (this.overlayType === 'newTaskOverlay') {
this.taskData.status = this.overlayData;
} }
} }

View file

@ -31,7 +31,7 @@
> >
<span class="line"></span> <span class="line"></span>
</div> </div>
<button class="btn" type="submit" (click)="addNewTaskOverlay('none')"> <button class="btn" type="submit" (click)="addNewTaskOverlay(TODO)">
<div class="btn-inside"> <div class="btn-inside">
<span>{{ "board.addTask" | translate }}</span> <span>{{ "board.addTask" | translate }}</span>
<img src="./../../../assets/img/board/add_white.svg" alt="check" /> <img src="./../../../assets/img/board/add_white.svg" alt="check" />

View file

@ -1,4 +1,3 @@
<section>
<form <form
(ngSubmit)="onSubmit(contactForm)" (ngSubmit)="onSubmit(contactForm)"
(keyup)="updateFormData()" (keyup)="updateFormData()"
@ -92,11 +91,11 @@
@if(!email.valid && email.touched && @if(!email.valid && email.touched &&
!checkIfUserEmailIsValid(contactData.email)) { !checkIfUserEmailIsValid(contactData.email)) {
<p>{{ "contactDialogForm.invalidMail0" | translate }}</p> <p>{{ "contactDialogForm.invalidMail0" | translate }}</p>
} @else { @if (email.touched && } @else { @if (email.touched && !checkIfUserEmailIsValid(contactData.email))
!checkIfUserEmailIsValid(contactData.email)) { {
<p>{{ "contactDialogForm.invalidMail1" | translate }}</p> <p>{{ "contactDialogForm.invalidMail1" | translate }}</p>
} @else { @if (existEmailOnServer(contactData.email) && } @else { @if (existEmailOnServer(contactData.email) && !contactData.email)
!contactData.email) { {
<p>{{ "contactDialogForm.invalidMail2" | translate }}</p> <p>{{ "contactDialogForm.invalidMail2" | translate }}</p>
} } } } } }
</div> </div>
@ -153,7 +152,6 @@
></app-form-btn> ></app-form-btn>
</div> </div>
</form> </form>
</section>
<!-- Confirm dialog --> <!-- Confirm dialog -->
<app-confirm-dialog <app-confirm-dialog

View file

@ -1,6 +1,6 @@
@if (overlayData !== "new") { @if (overlayData !== "new") {
<section class="overlay">
<div class="dialog"> <div class="overlay">
<div class="header"> <div class="header">
<img src="./../../../../assets/img/logo.svg" alt="" /> <img src="./../../../../assets/img/logo.svg" alt="" />
<p>{{ "contacts.editContact" | translate }}</p> <p>{{ "contacts.editContact" | translate }}</p>
@ -34,10 +34,9 @@
</div> </div>
<div class="notice">{{ "contacts.notice" | translate }}</div> <div class="notice">{{ "contacts.notice" | translate }}</div>
</div> </div>
</section>
} @else { } @else {
<section class="overlay">
<div class="dialog"> <div class="overlay">
<div class="header"> <div class="header">
<img src="./../../../../assets/img/logo.svg" alt="" /> <img src="./../../../../assets/img/logo.svg" alt="" />
<p>{{ "contacts.addContact" | translate }}</p> <p>{{ "contacts.addContact" | translate }}</p>
@ -65,5 +64,4 @@
</div> </div>
<div class="notice">{{ "contacts.notice" | translate }}</div> <div class="notice">{{ "contacts.notice" | translate }}</div>
</div> </div>
</section>
} }

View file

@ -1,17 +1,4 @@
section { .overlay {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
}
.dialog {
background-color: var(--white); background-color: var(--white);
width: 760px; width: 760px;
height: auto; height: auto;

View file

@ -59,19 +59,15 @@ export class OverlayComponent implements OnInit {
} }
@HostListener('document:click', ['$event']) @HostListener('document:click', ['$event'])
/** /**
* Checks if a click event occurred within the overlay but outside the content or dialog elements. * Closes the contact edit overlay if the user clicks on the overlay background.
* If so, closes the overlay by emitting an event.
* *
* @param event The MouseEvent that triggered the check. * @param event The MouseEvent triggered by a click action.
*/ */
checkOpenContactEdit(event: MouseEvent) { checkOpenContactEdit(event: MouseEvent) {
const targetElement = event.target as HTMLElement; const targetElement = event.target as HTMLElement;
if (
targetElement.closest('.overlay') && if (targetElement === document.querySelector('.overlay')) {
(!targetElement.closest('.content') || !targetElement.closest('.dialog'))
) {
this.onCloseOverlay(false); this.onCloseOverlay(false);
} }
} }