Skip to content

Instantly share code, notes, and snippets.

@guillemcordoba
Created July 12, 2018 09:19
Show Gist options
  • Save guillemcordoba/50ac625102c8c0acfd5aa33a04da3a8a to your computer and use it in GitHub Desktop.
Save guillemcordoba/50ac625102c8c0acfd5aa33a04da3a8a to your computer and use it in GitHub Desktop.
Angular generic overlay menu abstract class
import { TransactionListComponent } from './web3-transaction-list/web3-transaction-list.component';
import { Directive, ElementRef, HostListener } from '@angular/core';
import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
import { Portal } from '@angular/cdk/portal';
import { Store } from '@ngrx/store';
import { TransactionStateService } from '../services/transaction-state.service';
export abstract class OverlayMenu {
constructor(
private elementRef: ElementRef,
private overlay: Overlay
) {}
launchPanel(overlayPortal: Portal) {
const overlayConfig: OverlayConfig = new OverlayConfig({
hasBackdrop: true,
backdropClass: 'cdk-overlay-transparent-backgorund'
});
overlayConfig.positionStrategy = this.overlay.position().connectedTo(
this.elementRef,
{
originX: 'start',
originY: 'bottom'
},
{
overlayX: 'end',
overlayY: 'top'
}
);
overlayConfig.scrollStrategy = this.overlay.scrollStrategies.reposition();
const overlayRef = this.overlay.create(overlayConfig);
overlayRef.attach(overlayPortal);
overlayRef.backdropClick().subscribe(() => overlayRef.dispose());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment