45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
// #docregion
 | 
						|
import { Component, HostBinding } from '@angular/core';
 | 
						|
import { Router }                 from '@angular/router';
 | 
						|
 | 
						|
import { slideInDownAnimation }   from './animations';
 | 
						|
 | 
						|
@Component({
 | 
						|
  moduleId: module.id,
 | 
						|
  templateUrl: './compose-message.component.html',
 | 
						|
  styles: [ ':host { position: relative; bottom: 10%; }' ],
 | 
						|
  animations: [ slideInDownAnimation ]
 | 
						|
})
 | 
						|
export class ComposeMessageComponent {
 | 
						|
  @HostBinding('@routeAnimation') routeAnimation = true;
 | 
						|
  @HostBinding('style.display')   display = 'block';
 | 
						|
  @HostBinding('style.position')  position = 'absolute';
 | 
						|
 | 
						|
  details: string;
 | 
						|
  sending: boolean = false;
 | 
						|
 | 
						|
  constructor(private router: Router) {}
 | 
						|
 | 
						|
  send() {
 | 
						|
    this.sending = true;
 | 
						|
    this.details = 'Sending Message...';
 | 
						|
 | 
						|
    setTimeout(() => {
 | 
						|
      this.sending = false;
 | 
						|
      this.closePopup();
 | 
						|
    }, 1000);
 | 
						|
  }
 | 
						|
 | 
						|
  cancel() {
 | 
						|
    this.closePopup();
 | 
						|
  }
 | 
						|
 | 
						|
  // #docregion closePopup
 | 
						|
  closePopup() {
 | 
						|
    // Providing a `null` value to the named outlet
 | 
						|
    // clears the contents of the named outlet
 | 
						|
    this.router.navigate([{ outlets: { popup: null }}]);
 | 
						|
  }
 | 
						|
  // #enddocregion closePopup
 | 
						|
}
 |