[Monitor & Library | develop]: [Bug fix] Show quick contact button when not in contacts us and not intersecting either with contact us section (home page), nor with bottom.
1. layout.service.ts: Initialize hasQuickContactSubject to false (Don't ever show it unless it should be there). 2. quick-contact.service.ts: Initialize display to false (Assume it is intersecting, until it is proved it is not). 3. app.component.ts: Updated checks for <quick-contact> and added public bottomNotIntersecting: boolean; and public displayQuickContact: boolean;
This commit is contained in:
parent
2db3855cbb
commit
23131ac2fd
|
@ -60,7 +60,8 @@ import {ResourcesService} from "./openaireLibrary/monitor/services/resources.ser
|
||||||
</cookie-law>
|
</cookie-law>
|
||||||
<bottom #bottom *ngIf="properties && showMenu" id="bottom" [grantAdvance]="false"
|
<bottom #bottom *ngIf="properties && showMenu" id="bottom" [grantAdvance]="false"
|
||||||
[properties]="properties"></bottom>
|
[properties]="properties"></bottom>
|
||||||
<quick-contact #quickContact *ngIf="showQuickContact && contactForm" (sendEmitter)="send($event)"
|
<quick-contact #quickContact *ngIf="bottomNotIntersecting && displayQuickContact && contactForm"
|
||||||
|
(sendEmitter)="send($event)"
|
||||||
[contactForm]="contactForm" [sending]="sending" [images]="images" [contact]="'Help'"
|
[contactForm]="contactForm" [sending]="sending" [images]="images" [contact]="'Help'"
|
||||||
[organizationTypes]="organizationTypes"
|
[organizationTypes]="organizationTypes"
|
||||||
class="uk-visible@m"></quick-contact>
|
class="uk-visible@m"></quick-contact>
|
||||||
|
@ -79,7 +80,8 @@ export class AppComponent {
|
||||||
header: Header;
|
header: Header;
|
||||||
logoPath: string = 'assets/common-assets/logo-services/monitor/';
|
logoPath: string = 'assets/common-assets/logo-services/monitor/';
|
||||||
/* Contact */
|
/* Contact */
|
||||||
public showQuickContact: boolean;
|
public bottomNotIntersecting: boolean;
|
||||||
|
public displayQuickContact: boolean; // intersecting with specific section in home page
|
||||||
public showGetStarted: boolean = true;
|
public showGetStarted: boolean = true;
|
||||||
public contactForm: UntypedFormGroup;
|
public contactForm: UntypedFormGroup;
|
||||||
public organizationTypes: string[] = [
|
public organizationTypes: string[] = [
|
||||||
|
@ -107,7 +109,7 @@ export class AppComponent {
|
||||||
if (event instanceof NavigationEnd) {
|
if (event instanceof NavigationEnd) {
|
||||||
if (event.url === '/contact-us') {
|
if (event.url === '/contact-us') {
|
||||||
this.quickContactService.setDisplay(false);
|
this.quickContactService.setDisplay(false);
|
||||||
} else if (event.url !== '/contact-us' && !this.showQuickContact) {
|
} else if (event.url !== '/contact-us' && (!this.bottomNotIntersecting || !this.displayQuickContact)) {
|
||||||
this.quickContactService.setDisplay(true);
|
this.quickContactService.setDisplay(true);
|
||||||
}
|
}
|
||||||
this.showGetStarted = event.url !== '/get-started';
|
this.showGetStarted = event.url !== '/get-started';
|
||||||
|
@ -135,7 +137,7 @@ export class AppComponent {
|
||||||
this.reset();
|
this.reset();
|
||||||
}));
|
}));
|
||||||
this.subscriptions.push(this.quickContactService.isDisplayed.subscribe(display => {
|
this.subscriptions.push(this.quickContactService.isDisplayed.subscribe(display => {
|
||||||
this.showQuickContact = display;
|
this.displayQuickContact = display;
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,15 +147,11 @@ export class AppComponent {
|
||||||
rootMargin: '0px',
|
rootMargin: '0px',
|
||||||
threshold: 0.1
|
threshold: 0.1
|
||||||
};
|
};
|
||||||
|
|
||||||
let intersectionObserver = new IntersectionObserver(entries => {
|
let intersectionObserver = new IntersectionObserver(entries => {
|
||||||
entries.forEach(entry => {
|
entries.forEach(entry => {
|
||||||
if (entry.isIntersecting && this.showQuickContact) {
|
// if (entry.isIntersecting && this.showQuickContact) {
|
||||||
this.showQuickContact = false;
|
this.bottomNotIntersecting = !entry.isIntersecting;
|
||||||
this.quickContactService.setDisplay(this.showQuickContact);
|
|
||||||
} else if (!entry.isIntersecting && !this.showQuickContact) {
|
|
||||||
this.showQuickContact = true;
|
|
||||||
this.quickContactService.setDisplay(this.showQuickContact);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}, options);
|
}, options);
|
||||||
intersectionObserver.observe(this.bottom.nativeElement);
|
intersectionObserver.observe(this.bottom.nativeElement);
|
||||||
|
@ -164,6 +162,8 @@ export class AppComponent {
|
||||||
this.subscriptions.forEach(value => {
|
this.subscriptions.forEach(value => {
|
||||||
if (value instanceof Subscriber) {
|
if (value instanceof Subscriber) {
|
||||||
value.unsubscribe();
|
value.unsubscribe();
|
||||||
|
} else if (value instanceof IntersectionObserver) {
|
||||||
|
value.disconnect();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.userManagementService.clearSubscriptions();
|
this.userManagementService.clearSubscriptions();
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit bd87a47795f8f9243e0a1129d715fcb96cf9b714
|
Subproject commit d6ec928237238cf1d0bebbf2a83e915348b8e38a
|
Loading…
Reference in New Issue